import { Outlet, NavLink, useLocation } from 'react-router-dom'; import { useAuth } from '../contexts/AuthContext'; import ThemeToggle from './ThemeToggle'; import { Calendar, Clock, Shield, LogOut, Menu, X, User } from 'lucide-react'; import { useState } from 'react'; export default function Layout() { const { user, logout, isAdmin } = useAuth(); const [menuOpen, setMenuOpen] = useState(false); const location = useLocation(); const navItems = [ { to: '/', icon: Clock, label: 'Timesheet' }, { to: '/history', icon: Calendar, label: 'History' }, { to: '/profile', icon: User, label: 'Account' }, ...(isAdmin ? [{ to: '/admin', icon: Shield, label: 'Admin' }] : []), ]; return (
{/* Header */}
Coastal
{/* Desktop Nav */}
{user?.name}
{/* Mobile Menu */} {menuOpen && (
{navItems.map(({ to, icon: Icon, label }) => ( setMenuOpen(false)} className={({ isActive }) => `flex items-center gap-3 px-4 py-3 rounded-xl text-base font-medium transition-all ${ isActive ? 'bg-sky-50 dark:bg-sky-500/10 text-sky-600 dark:text-sky-400' : 'text-gray-600 dark:text-gray-400' }` } > {label} ))}
{user?.name} ({user?.role})
)}
{/* Mobile Bottom Nav */} {/* Content */}
); }