import { FlashToast, PWAUpdateToast } from '@/components/notifications'; import { Toaster } from '@/components/ui/sonner'; import { TooltipProvider } from '@/components/ui/tooltip'; import { CartProvider } from '@/contexts/cart-context'; import { initializeTheme } from '@/hooks/use-appearance'; import AppLayout from '@/layouts/app-layout'; import AuthLayout from '@/layouts/auth-layout'; import SettingsLayout from '@/layouts/settings/layout'; import { createInertiaApp } from '@inertiajs/react'; import { registerSW } from 'virtual:pwa-register'; const appName = import.meta.env.VITE_APP_NAME || 'DST Collection'; registerSW({ onNeedRefresh() { window.dispatchEvent(new CustomEvent('sw-update-available')); }, onOfflineReady() { window.dispatchEvent(new CustomEvent('sw-offline-ready')); }, }); createInertiaApp({ title: (title) => (title ? `${title} - ${appName}` : appName), layout: (name) => { switch (true) { case name === 'admin/manage/cutting/show': return null; case name === 'welcome': return null; case name.startsWith('auth/'): return AuthLayout; case name.startsWith('settings/'): return [AppLayout, SettingsLayout]; default: return AppLayout; } }, strictMode: true, withApp(app) { return ( {app} ); }, progress: { color: '#4B5563', }, }); // This will set light / dark mode on load... initializeTheme();