mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-20 05:39:39 +02:00
34 lines
905 B
JavaScript
34 lines
905 B
JavaScript
|
import { Controller } from "@hotwired/stimulus";
|
||
|
|
||
|
// Connects to data-controller="tabs"
|
||
|
export default class extends Controller {
|
||
|
static classes = ["active"];
|
||
|
static targets = ["btn", "tab"];
|
||
|
static values = { defaultTab: String };
|
||
|
|
||
|
connect() {
|
||
|
const defaultTab = this.defaultTabValue;
|
||
|
this.tabTargets.forEach((tab) => {
|
||
|
if (tab.id === defaultTab) {
|
||
|
tab.hidden = false;
|
||
|
this.btnTargets
|
||
|
.find((btn) => btn.dataset.id === defaultTab)
|
||
|
.classList.add(...this.activeClasses);
|
||
|
} else {
|
||
|
tab.hidden = true;
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
select(event) {
|
||
|
const selectedTabId = event.currentTarget.dataset.id;
|
||
|
this.tabTargets.forEach((tab) => (tab.hidden = tab.id !== selectedTabId));
|
||
|
this.btnTargets.forEach((btn) =>
|
||
|
btn.classList.toggle(
|
||
|
...this.activeClasses,
|
||
|
btn.dataset.id === selectedTabId
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
}
|