import { lazy, Suspense } from 'react' import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom' import { Toaster } from 'sonner' import { ThemeProvider } from '@/contexts/ThemeContext' import { AuthProvider, useAuth } from '@/contexts/AuthContext' import { UserPreferencesProvider } from '@/contexts/UserPreferencesContext' import { AppProvider } from '@/contexts/AppContext' import { JobProvider } from '@/contexts/JobContext' import { HistoryProvider } from '@/contexts/HistoryContext' import ErrorBoundary from '@/components/ErrorBoundary' import LoadingScreen from '@/components/LoadingScreen' import { SuperAdminRoute } from '@/components/SuperAdminRoute' const Login = lazy(() => import('@/pages/Login')) const Home = lazy(() => import('@/pages/Home')) const Settings = lazy(() => import('@/pages/Settings')) const UserManagement = lazy(() => import('@/pages/UserManagement')) const VoiceManagement = lazy(() => import('@/pages/VoiceManagement')) const Audiobook = lazy(() => import('@/pages/Audiobook')) function ProtectedRoute({ children }: { children: React.ReactNode }) { const { isAuthenticated, isLoading } = useAuth() if (isLoading) { return (