refactor: switch ui scripts to data hooks

This commit is contained in:
2026-04-15 00:10:20 +02:00
parent 0a5f64c604
commit 29e49b9fcc
9 changed files with 111 additions and 45 deletions

View File

@@ -1,5 +1,11 @@
// static/js/discover.ts
(() => {
const parseClassList = (value) => {
if (!value) {
return [];
}
return value.split(" ").map((entry) => entry.trim()).filter((entry) => entry.length > 0);
};
const setActiveTab = (clickedTab) => {
const group = clickedTab.closest('[data-tab-group="discover"]');
if (!group) {
@@ -7,13 +13,15 @@
}
const triggers = group.querySelectorAll("[data-tab-trigger]");
triggers.forEach((tab) => {
tab.classList.add("tab-trigger");
tab.classList.remove("bg-[var(--surface-tab-active)]", "text-[var(--accent)]");
tab.classList.add("bg-[var(--panel-soft)]", "text-[var(--text-muted)]");
const activeClasses2 = parseClassList(tab.getAttribute("data-tab-active-classes"));
const inactiveClasses2 = parseClassList(tab.getAttribute("data-tab-inactive-classes"));
tab.classList.remove(...activeClasses2);
tab.classList.add(...inactiveClasses2);
});
clickedTab.classList.add("tab-trigger");
clickedTab.classList.remove("bg-[var(--panel-soft)]", "text-[var(--text-muted)]");
clickedTab.classList.add("bg-[var(--surface-tab-active)]", "text-[var(--accent)]");
const activeClasses = parseClassList(clickedTab.getAttribute("data-tab-active-classes"));
const inactiveClasses = parseClassList(clickedTab.getAttribute("data-tab-inactive-classes"));
clickedTab.classList.remove(...inactiveClasses);
clickedTab.classList.add(...activeClasses);
};
document.addEventListener("click", (event) => {
const target = event.target;