refactor: switch ui scripts to data hooks
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user