23 lines
592 B
JavaScript
23 lines
592 B
JavaScript
import { Controller } from "@hotwired/stimulus"
|
|
|
|
export default class extends Controller {
|
|
static classes = [ "collapsed" ]
|
|
static targets = [ "column" ]
|
|
|
|
toggle(event) {
|
|
const clickedColumn = event.target.closest('[data-collapsible-columns-target="column"]')
|
|
|
|
if (!clickedColumn) return
|
|
|
|
const isCurrentlyCollapsed = clickedColumn.classList.contains(this.collapsedClass)
|
|
|
|
this.columnTargets.forEach(column => {
|
|
column.classList.add(this.collapsedClass)
|
|
})
|
|
|
|
if (isCurrentlyCollapsed) {
|
|
clickedColumn.classList.remove(this.collapsedClass)
|
|
}
|
|
}
|
|
}
|