import { parseClassList } from './utils'; const setActiveDiscoverTab = (clickedTab: Element): void => { const group = clickedTab.closest('[data-tab-group="discover"]'); if (!group) { return; } const triggers = group.querySelectorAll('[data-tab-trigger]'); triggers.forEach(tab => { const activeClasses = parseClassList(tab.getAttribute('data-tab-active-classes')); const inactiveClasses = parseClassList(tab.getAttribute('data-tab-inactive-classes')); tab.classList.remove(...activeClasses); tab.classList.add(...inactiveClasses); }); 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); }; const onDiscoverTabClick = (event: MouseEvent): void => { const target = event.target; if (!(target instanceof Element)) { return; } const trigger = target.closest('[data-tab-trigger]'); if (!trigger) { return; } setActiveDiscoverTab(trigger); }; const initDiscoverTabs = (): void => { document.addEventListener('click', onDiscoverTabClick); }; initDiscoverTabs();