mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-21 22:29:38 +02:00
Fix event handler removal on disconnect (#540)
* Fix event handler removal on disconnect * Fix tab controller
This commit is contained in:
parent
c60ddaec1d
commit
2c3752668a
5 changed files with 19 additions and 25 deletions
|
@ -3,21 +3,19 @@ import { Controller } from "@hotwired/stimulus"
|
||||||
// Connects to data-controller="account-collapse"
|
// Connects to data-controller="account-collapse"
|
||||||
export default class extends Controller {
|
export default class extends Controller {
|
||||||
static values = { type: String }
|
static values = { type: String }
|
||||||
boundOnToggle = null
|
|
||||||
initialToggle = false
|
initialToggle = false
|
||||||
STORAGE_NAME = "accountCollapseStates"
|
STORAGE_NAME = "accountCollapseStates"
|
||||||
|
|
||||||
connect() {
|
connect() {
|
||||||
this.boundOnToggle = this.onToggle.bind(this)
|
this.element.addEventListener("toggle", this.onToggle)
|
||||||
this.element.addEventListener("toggle", this.boundOnToggle)
|
|
||||||
this.updateFromLocalStorage()
|
this.updateFromLocalStorage()
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect() {
|
disconnect() {
|
||||||
this.element.removeEventListener("toggle", this.boundOnToggle)
|
this.element.removeEventListener("toggle", this.onToggle)
|
||||||
}
|
}
|
||||||
|
|
||||||
onToggle() {
|
onToggle = () => {
|
||||||
if (this.initialToggle) {
|
if (this.initialToggle) {
|
||||||
this.initialToggle = false
|
this.initialToggle = false
|
||||||
return
|
return
|
||||||
|
|
|
@ -15,16 +15,14 @@ export default class extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
connect() {
|
connect() {
|
||||||
this.inputElements.forEach(el => el.addEventListener('change', this.handler.bind(this)));
|
[...this.inputElements, ...this.selectElements].forEach(el => el.addEventListener('change', this.handler));
|
||||||
this.selectElements.forEach(el => el.addEventListener('change', this.handler.bind(this)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect() {
|
disconnect() {
|
||||||
this.inputElements.forEach(el => el.removeEventListener('change', this.handler.bind(this)));
|
[...this.inputElements, ...this.selectElements].forEach(el => el.removeEventListener('change', this.handler));
|
||||||
this.selectElements.forEach(el => el.removeEventListener('change', this.handler.bind(this)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
handler(e) {
|
handler = (e) => {
|
||||||
console.log(e);
|
console.log(e);
|
||||||
this.element.requestSubmit();
|
this.element.requestSubmit();
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,14 +8,14 @@ export default class extends Controller {
|
||||||
|
|
||||||
connect() {
|
connect() {
|
||||||
this.renderChart(this.seriesValue);
|
this.renderChart(this.seriesValue);
|
||||||
document.addEventListener("turbo:load", this.renderChart.bind(this));
|
document.addEventListener("turbo:load", this.renderChart);
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect() {
|
disconnect() {
|
||||||
document.removeEventListener("turbo:load", this.renderChart.bind(this));
|
document.removeEventListener("turbo:load", this.renderChart);
|
||||||
}
|
}
|
||||||
|
|
||||||
renderChart() {
|
renderChart = () => {
|
||||||
this.drawChart(this.seriesValue);
|
this.drawChart(this.seriesValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,24 +8,22 @@ export default class extends Controller {
|
||||||
|
|
||||||
connect() {
|
connect() {
|
||||||
this.updateClasses(this.defaultTabValue);
|
this.updateClasses(this.defaultTabValue);
|
||||||
document.addEventListener(
|
document.addEventListener("turbo:load", this.onTurboLoad);
|
||||||
"turbo:load",
|
|
||||||
this.updateClasses.bind(this, this.defaultTabValue)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect() {
|
disconnect() {
|
||||||
document.removeEventListener(
|
document.removeEventListener("turbo:load", this.onTurboLoad);
|
||||||
"turbo:load",
|
|
||||||
this.updateClasses.bind(this, this.defaultTabValue)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
select(event) {
|
select(event) {
|
||||||
this.updateClasses(event.target.dataset.id);
|
this.updateClasses(event.target.dataset.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateClasses(selectedId) {
|
onTurboLoad = () => {
|
||||||
|
this.updateClasses(this.defaultTabValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
updateClasses = (selectedId) => {
|
||||||
this.btnTargets.forEach((btn) => btn.classList.remove(this.activeClass));
|
this.btnTargets.forEach((btn) => btn.classList.remove(this.activeClass));
|
||||||
this.tabTargets.forEach((tab) => tab.classList.add("hidden"));
|
this.tabTargets.forEach((tab) => tab.classList.add("hidden"));
|
||||||
|
|
||||||
|
|
|
@ -7,14 +7,14 @@ export default class extends Controller {
|
||||||
|
|
||||||
connect() {
|
connect() {
|
||||||
this.renderChart(this.seriesValue);
|
this.renderChart(this.seriesValue);
|
||||||
document.addEventListener("turbo:load", this.renderChart.bind(this));
|
document.addEventListener("turbo:load", this.renderChart);
|
||||||
}
|
}
|
||||||
|
|
||||||
disconnect() {
|
disconnect() {
|
||||||
document.removeEventListener("turbo:load", this.renderChart.bind(this));
|
document.removeEventListener("turbo:load", this.renderChart);
|
||||||
}
|
}
|
||||||
|
|
||||||
renderChart() {
|
renderChart = () => {
|
||||||
this.drawChart(this.seriesValue);
|
this.drawChart(this.seriesValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue