import React from 'react'; import { Outlet, Link, useLocation } from 'react-router-dom'; import { useAuth } from '../context/AuthContext'; import ThemeToggle from './ThemeToggle'; import { CommandPalette } from './ui/CommandPalette'; import { SessionTimeoutWarning } from './ui/SessionTimeoutWarning'; import { PageTitleUpdater } from '../hooks/usePageTitle'; import AnnouncementBanner from './AnnouncementBanner'; import { LayoutDashboard, CheckSquare, Home, Sprout, Clock, LogOut, Menu, X, User, ChevronDown, Package, CalendarDays, Shield, Settings, Fingerprint, BarChart3, Thermometer, DollarSign, Brain, Users } from 'lucide-react'; export default function Layout() { const { user, logout } = useAuth(); const location = useLocation(); const [mobileMenuOpen, setMobileMenuOpen] = React.useState(false); const [userMenuOpen, setUserMenuOpen] = React.useState(false); const navItems = [ { label: 'Dashboard', path: '/', icon: LayoutDashboard }, { label: 'Walkthrough', path: '/walkthrough', icon: CheckSquare }, { label: 'IPM', path: '/ipm', icon: Shield }, { label: 'Tasks', path: '/tasks', icon: CalendarDays }, { label: 'Reports', path: '/reports', icon: BarChart3 }, { label: 'Inventory', path: '/supplies', icon: Package }, // Secondary items available in sidebar/more menu { label: 'Time', path: '/timeclock', icon: Clock }, { label: 'Rooms', path: '/rooms', icon: Home }, { label: 'Batches', path: '/batches', icon: Sprout }, { label: 'Quick Actions', path: '/touch-points', icon: Fingerprint }, { label: 'Layout', path: '/layout-designer', icon: LayoutDashboard }, { label: 'Visitors', path: '/visitors', icon: Users }, { label: 'Environment', path: '/environment', icon: Thermometer }, { label: 'Financial', path: '/financial', icon: DollarSign }, { label: 'AI Insights', path: '/insights', icon: Brain }, { label: 'Roles', path: '/roles', icon: Shield }, { label: 'Settings', path: '/settings', icon: Settings }, ]; return (
{user?.name || user?.email}
Navigation