import { lazy, Suspense } from "react"; import { BrowserRouter, Routes, Route, Navigate } from "react-router-dom"; import { DashboardLayout } from "./components/DashboardLayout"; import { LoginPage } from "./components/LoginPage"; import { ToastProvider } from "./components/Toast"; import { ThemeProvider } from "./hooks/useTheme"; import { useSession } from "./lib/auth-client"; // Lazy-loaded pages for code splitting const DashboardPage = lazy(() => import("./pages/DashboardPage").then(m => ({ default: m.DashboardPage }))); const QueuePage = lazy(() => import("./pages/QueuePage").then(m => ({ default: m.QueuePage }))); const ChatPage = lazy(() => import("./pages/ChatPage").then(m => ({ default: m.ChatPage }))); const ProjectsPage = lazy(() => import("./pages/ProjectsPage").then(m => ({ default: m.ProjectsPage }))); const TaskPage = lazy(() => import("./pages/TaskPage").then(m => ({ default: m.TaskPage }))); const ActivityPage = lazy(() => import("./pages/ActivityPage").then(m => ({ default: m.ActivityPage }))); const AdminPage = lazy(() => import("./components/AdminPage").then(m => ({ default: m.AdminPage }))); function PageLoader() { return (
); } function AuthenticatedApp() { return ( }> }>} /> }>} /> }>} /> }>} /> }>} /> }>} /> }>} /> } /> ); } function App() { const session = useSession(); if (session.isPending) { return (
Loading...
); } if (!session.data) { return ( window.location.reload()} /> ); } return ( ); } export default App;