(function () { var STORAGE_KEY = 'crank_user'; function currentUser() { try { return JSON.parse(localStorage.getItem(STORAGE_KEY)); } catch (_error) { return null; } } function fillUserInfo() { var user = currentUser(); if (!user) { return; } document.querySelectorAll('.nav-avatar').forEach(function (element) { element.textContent = user.initials || 'CR'; }); var nameElement = document.querySelector('.user-dropdown-name'); var roleElement = document.querySelector('.user-dropdown-role'); if (nameElement) { nameElement.textContent = user.name || 'Operator'; } if (roleElement) { roleElement.textContent = (user.role || 'Viewer') + ' ยท ' + (user.workspace || 'workspace'); } } function initNav() { fillUserInfo(); var dropdown = document.querySelector('.user-dropdown'); var avatar = document.querySelector('.nav-avatar'); var hamburger = document.querySelector('.nav-hamburger'); var mobileNav = document.querySelector('.mobile-nav'); if (dropdown) { dropdown.style.display = 'none'; } if (mobileNav) { mobileNav.style.display = 'none'; } if (avatar && dropdown) { avatar.addEventListener('click', function (event) { event.stopPropagation(); dropdown.style.display = dropdown.style.display === 'none' ? 'block' : 'none'; }); } if (hamburger && mobileNav) { hamburger.addEventListener('click', function (event) { event.stopPropagation(); mobileNav.style.display = mobileNav.style.display === 'none' ? 'block' : 'none'; hamburger.classList.toggle('open', mobileNav.style.display !== 'none'); }); } document.addEventListener('click', function (event) { if (dropdown && !event.target.closest('.user-menu')) { dropdown.style.display = 'none'; } if (mobileNav && !event.target.closest('.navbar') && !event.target.closest('.mobile-nav')) { mobileNav.style.display = 'none'; if (hamburger) { hamburger.classList.remove('open'); } } }); document.querySelectorAll('[data-action="logout"]').forEach(function (button) { button.addEventListener('click', function () { window.CrankAuth.logout(); }); }); document.querySelectorAll('[data-action="profile"]').forEach(function (button) { button.addEventListener('click', function () { if (dropdown) { dropdown.style.display = 'none'; } window.location.href = (window.APP_BASE || '') + 'html/settings.html#profile'; }); }); document.querySelectorAll('[data-action="settings-link"]').forEach(function (button) { button.addEventListener('click', function () { if (dropdown) { dropdown.style.display = 'none'; } window.location.href = (window.APP_BASE || '') + 'html/settings.html'; }); }); } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', initNav); } else { initNav(); } })();