import { useState } from 'react'; import { Outlet } from 'react-router-dom'; import { Menu } from 'lucide-react'; import { useTheme } from '@/hooks/useTheme'; import { AlertsProvider } from '@/hooks/useAlerts'; import { LockProvider } from '@/hooks/useLock'; import { NotificationProvider } from '@/hooks/useNotifications'; import { Button } from '@/components/ui/button'; import Sidebar from './Sidebar'; import AppAmbientBackground from './AppAmbientBackground'; import LockOverlay from './LockOverlay'; import NotificationToaster from '@/components/notifications/NotificationToaster'; export default function AppLayout() { useTheme(); const [collapsed, setCollapsed] = useState(() => { try { return JSON.parse(localStorage.getItem('umbra-sidebar-collapsed') || 'false'); } catch { return false; } }); const [mobileOpen, setMobileOpen] = useState(false); return (
{ const next = !collapsed; setCollapsed(next); localStorage.setItem('umbra-sidebar-collapsed', JSON.stringify(next)); }} mobileOpen={mobileOpen} onMobileClose={() => setMobileOpen(false)} />
{/* Mobile header */}

UMBRA

); }