import { useState, useCallback } from 'react'; import { Link, NavLink, useNavigate } from 'react-router-dom'; import { useAuth } from '../../contexts/AuthContext'; const NAV_LINKS = [ { to: '/', label: 'Home', end: true }, { to: '/studio', label: 'Studio', end: false }, { to: '/events', label: 'Events', end: false }, { to: '/forum', label: 'Forum', end: false }, { to: '/bugs', label: 'Bugs', end: false }, ]; export function Navbar() { const { user, isAuthenticated, logout } = useAuth(); const navigate = useNavigate(); const [menuOpen, setMenuOpen] = useState(false); const handleLogout = useCallback(() => { logout(); setMenuOpen(false); navigate('/'); }, [logout, navigate]); const closeMenu = useCallback(() => setMenuOpen(false), []); const navLinkStyle = ({ isActive }: { isActive: boolean }): React.CSSProperties => ({ fontFamily: 'var(--font-mono)', fontSize: '0.82rem', textTransform: 'uppercase', letterSpacing: '0.12em', textDecoration: 'none', color: isActive ? 'var(--color-yellow)' : 'var(--color-text-dim)', borderBottom: isActive ? '2px solid var(--color-yellow)' : '2px solid transparent', paddingBottom: '2px', transition: 'color 0.1s, border-color 0.1s', }); return (
{/* Mobile menu */} {menuOpen && (
{NAV_LINKS.map(({ to, label, end }) => ( {label} ))} {/* Auth section */}
{isAuthenticated ? ( <> [{user?.username}] ) : ( <> Login Register )}
)}
); }