aboutsummaryrefslogtreecommitdiffstats
path: root/src/wwwroot/scripts/tabs.js
blob: 69d670c1fe48c20cebad7aed2d87adac26e198d0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
export function initTabs() {
    let firstActiveIsShown = false;
    document.querySelectorAll(".tab-content-container[data-tab]").forEach(contentContainer => {
        if (contentContainer.classList.contains("active") && !firstActiveIsShown) {
            firstActiveIsShown = true;
            return;
        }
        contentContainer.style.display = "none";
    });

    document.querySelectorAll(".tab-button[data-tab]").forEach(button => {
        button.addEventListener("click", handleButtonClick);
    });

    function handleButtonClick(element) {
        if (element.originalTarget.dataset.tab) {
            document.querySelectorAll(".tab-button[data-tab]").forEach(b => {
                if (b.dataset.tab === element.originalTarget.dataset.tab)
                    b.classList.add("active");
                else
                    b.classList.remove("active");
            });
            document.querySelectorAll(".tab-content-container[data-tab]").forEach(c => {
                if (c.dataset.tab === element.originalTarget.dataset.tab)
                    c.style.display = "";
                else
                    c.style.display = "none";
            });
        }
    }
}