import React from 'react'; import { Sidebar } from './components/Sidebar'; import { Topbar } from './components/Topbar'; import { usePage } from '@inertiajs/react'; interface Props { children: React.ReactNode; } export default function AuthenticatedLayout({ children }: Props) { const { system_settings } = usePage().props as any; const primaryColor = system_settings?.primary_color; const [theme, setTheme] = React.useState(() => { if (typeof window !== 'undefined') { return localStorage.getItem('theme') || 'light'; } return 'light'; }); const [sidebarOpen, setSidebarOpen] = React.useState(false); React.useEffect(() => { if (theme === 'dark') { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } localStorage.setItem('theme', theme); }, [theme]); // Close sidebar on route change (mobile) const url = usePage().url; React.useEffect(() => { setSidebarOpen(false); }, [url]); return (