ff14-mitigator/js/tabs.js

29 lines
1.2 KiB
JavaScript

document.addEventListener('DOMContentLoaded', () => {
const tabs = document.querySelectorAll('.tabs .tab');
const contents = document.querySelectorAll('.tab-content');
const validTabs = new Set([...tabs].map(btn => btn.dataset.tab));
function showTab(name) {
if (!validTabs.has(name)) name = 'report';
contents.forEach(el => el.style.display = 'none');
tabs.forEach(btn => btn.classList.remove('active'));
const content = document.getElementById('tab-' + name);
const btn = document.querySelector(`.tabs .tab[data-tab="${name}"]`);
if (content) content.style.display = 'block';
if (btn) btn.classList.add('active');
if (name === 'analysis') window.analysisTab?.onTabOpen?.();
if (name === 'planner') window.plannerTab?.onTabOpen?.();
localStorage.setItem('ff14-mitigator-active-tab', name);
}
tabs.forEach(btn => btn.addEventListener('click', () => showTab(btn.dataset.tab)));
window.showTab = showTab;
const params = new URLSearchParams(window.location.search);
showTab(params.get('tab') || localStorage.getItem('ff14-mitigator-active-tab') || 'report');
});