1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-20 05:39:39 +02:00
Maybe/app/javascript/controllers/tabs_controller.js

34 lines
905 B
JavaScript
Raw Normal View History

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
)
);
}
}