diff --git a/assets/controllers/toggle_controller.js b/assets/controllers/toggle_controller.js index f98d11b..3b6ed2a 100644 --- a/assets/controllers/toggle_controller.js +++ b/assets/controllers/toggle_controller.js @@ -4,40 +4,36 @@ export default class extends Controller { static classes = [ 'closed' ] static targets = [ 'toggle', 'icon' ] - static values = { open: Boolean, iconClosed: String, iconOpen: String, spriteUrl: String } + static values = { + open: { + type: Boolean, + default: true, + }, + } - connect() { + initialize() { this.target = this.hasToggleTarget ? this.toggleTarget : this.element - this.openValue = !this.target.classList.contains(this.closedClass) } toggle() { - this.openValue ? this._close() : this._open() + this.openValue = !this.openValue } close() { - this._close() - } - - _close() { this.openValue = false - this.target.classList.add(this.closedClass) } open() { - this._open() - } - - _open() { this.openValue = true - this.target.classList.remove(this.closedClass) } - openValueChanged() { + openValueChanged(open) { + this.target.classList.toggle(this.closedClass, false === open) + if (false === this.hasIconTarget) { return } - this.iconTarget.classList.toggle('rotate-90', true === this.openValue) + this.iconTarget.classList.toggle('rotate-90', true === open) } }