Files
myep-team/assets/controllers/tabs_controller.js
T
2023-09-18 13:10:20 +02:00

33 lines
869 B
JavaScript

import { Controller } from '@hotwired/stimulus'
export default class extends Controller {
static classes = [ 'buttonActive' ]
static targets = [ 'button', 'tab' ]
static values = { activeTab: Number }
select({ params: { tab } }) {
let selectedTab = tab
this.activeTabValue = selectedTab
this.element.dispatchEvent(new CustomEvent('select', {
detail: {
tab: selectedTab
}
}))
}
activeTabValueChanged(activeTab) {
this.tabTargets.forEach((element, index) => {
element.classList.toggle('hidden', activeTab !== index)
})
this.buttonTargets.forEach((element, index) => {
if (this.hasButtonActiveClass) {
element.classList.toggle(this.buttonActiveClass, activeTab === index)
}
})
}
}