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"
|
||||
export default class extends Controller {
|
||||
static values = { type: String }
|
||||
boundOnToggle = null
|
||||
initialToggle = false
|
||||
STORAGE_NAME = "accountCollapseStates"
|
||||
|
||||
connect() {
|
||||
this.boundOnToggle = this.onToggle.bind(this)
|
||||
this.element.addEventListener("toggle", this.boundOnToggle)
|
||||
this.element.addEventListener("toggle", this.onToggle)
|
||||
this.updateFromLocalStorage()
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
this.element.removeEventListener("toggle", this.boundOnToggle)
|
||||
this.element.removeEventListener("toggle", this.onToggle)
|
||||
}
|
||||
|
||||
onToggle() {
|
||||
onToggle = () => {
|
||||
if (this.initialToggle) {
|
||||
this.initialToggle = false
|
||||
return
|
||||
|
|
|
@ -15,16 +15,14 @@ export default class extends Controller {
|
|||
}
|
||||
|
||||
connect() {
|
||||
this.inputElements.forEach(el => el.addEventListener('change', this.handler.bind(this)));
|
||||
this.selectElements.forEach(el => el.addEventListener('change', this.handler.bind(this)));
|
||||
[...this.inputElements, ...this.selectElements].forEach(el => el.addEventListener('change', this.handler));
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
this.inputElements.forEach(el => el.removeEventListener('change', this.handler.bind(this)));
|
||||
this.selectElements.forEach(el => el.removeEventListener('change', this.handler.bind(this)));
|
||||
[...this.inputElements, ...this.selectElements].forEach(el => el.removeEventListener('change', this.handler));
|
||||
}
|
||||
|
||||
handler(e) {
|
||||
handler = (e) => {
|
||||
console.log(e);
|
||||
this.element.requestSubmit();
|
||||
}
|
||||
|
|
|
@ -8,14 +8,14 @@ export default class extends Controller {
|
|||
|
||||
connect() {
|
||||
this.renderChart(this.seriesValue);
|
||||
document.addEventListener("turbo:load", this.renderChart.bind(this));
|
||||
document.addEventListener("turbo:load", this.renderChart);
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
document.removeEventListener("turbo:load", this.renderChart.bind(this));
|
||||
document.removeEventListener("turbo:load", this.renderChart);
|
||||
}
|
||||
|
||||
renderChart() {
|
||||
renderChart = () => {
|
||||
this.drawChart(this.seriesValue);
|
||||
}
|
||||
|
||||
|
|
|
@ -8,24 +8,22 @@ export default class extends Controller {
|
|||
|
||||
connect() {
|
||||
this.updateClasses(this.defaultTabValue);
|
||||
document.addEventListener(
|
||||
"turbo:load",
|
||||
this.updateClasses.bind(this, this.defaultTabValue)
|
||||
);
|
||||
document.addEventListener("turbo:load", this.onTurboLoad);
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
document.removeEventListener(
|
||||
"turbo:load",
|
||||
this.updateClasses.bind(this, this.defaultTabValue)
|
||||
);
|
||||
document.removeEventListener("turbo:load", this.onTurboLoad);
|
||||
}
|
||||
|
||||
select(event) {
|
||||
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.tabTargets.forEach((tab) => tab.classList.add("hidden"));
|
||||
|
||||
|
|
|
@ -7,14 +7,14 @@ export default class extends Controller {
|
|||
|
||||
connect() {
|
||||
this.renderChart(this.seriesValue);
|
||||
document.addEventListener("turbo:load", this.renderChart.bind(this));
|
||||
document.addEventListener("turbo:load", this.renderChart);
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
document.removeEventListener("turbo:load", this.renderChart.bind(this));
|
||||
document.removeEventListener("turbo:load", this.renderChart);
|
||||
}
|
||||
|
||||
renderChart() {
|
||||
renderChart = () => {
|
||||
this.drawChart(this.seriesValue);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue