document.addEventListener('DOMContentLoaded', () => { const tabs = [...document.querySelectorAll('.content-tab-bar__item[data-tab]')]; const panels = [...document.querySelectorAll('.sb-tab-content')]; function showTab(name) { if (!tabs.some(tab => tab.dataset.tab === name)) return; tabs.forEach(tab => tab.classList.toggle('active', tab.dataset.tab === name)); panels.forEach(panel => panel.classList.toggle('active', panel.id === 'tab-' + name)); history.replaceState(null, '', '#' + name); } tabs.forEach(tab => tab.addEventListener('click', () => showTab(tab.dataset.tab))); showTab(location.hash.slice(1)); document.querySelectorAll('[data-confirm]').forEach(button => { button.addEventListener('click', event => { if (!confirm(button.dataset.confirm)) event.preventDefault(); }); }); document.querySelectorAll('[data-upload-form]').forEach(form => { form.addEventListener('submit', () => { form.classList.add('sb-uploading'); form.querySelector('[type="submit"]').disabled = true; }); }); });