// AdminHeader — neon nav for admin pages. Desktop: inline tabs. Mobile: burger menu. const { useState: useAdmHState, useEffect: useAdmHEffect, useRef: useAdmHRef } = React; function AdmIconLogout() { return ( ); } function AdmIconBurger() { return ( ); } function AdminHeader({ route, user, balance, brandName, onToggleAdminMode, onNavigate, onLogout }) { const [menuOpen, setMenuOpen] = useAdmHState(false); const menuRef = useAdmHRef(null); const navItems = [ { key: 'admin', label: 'Дашборд', icon: '📊' }, { key: 'admin-users', label: 'Юзеры', icon: '👥' }, { key: 'admin-orders', label: 'Заказы', icon: '📋' }, { key: 'admin-support', label: 'Тех Поддержка', icon: '💬' }, ]; // Close mobile menu on outside click useAdmHEffect(() => { if (!menuOpen) return; const onDown = (e) => { if (menuRef.current && !menuRef.current.contains(e.target)) setMenuOpen(false); }; document.addEventListener('mousedown', onDown); return () => document.removeEventListener('mousedown', onDown); }, [menuOpen]); const handleNav = (key) => { setMenuOpen(false); onNavigate(key); }; return (
onNavigate('admin')}>
AD
{brandName} · admin
{/* Exit admin mode — top-level, icon-only on mobile (label hidden by .admin-toggle__label CSS) */} {/* Logout — desktop only; on mobile lives inside burger menu */} {/* Mobile burger — opens nav menu */}
{menuOpen && (
{navItems.map(n => ( ))}
)}
); } Object.assign(window, { AdminHeader });