| import { BrowserRouter, Routes, Route, useLocation } from "react-router-dom"; | |
| import { ToastProvider } from "./context/ToastContext.jsx"; | |
| import { AuthProvider } from "./context/AuthContext.jsx"; | |
| import Navbar from "./components/Navbar.jsx"; | |
| import LandingPage from "./pages/LandingPage.jsx"; | |
| import UploadPage from "./pages/UploadPage.jsx"; | |
| import AnalysisPage from "./pages/AnalysisPage.jsx"; | |
| import CAMPage from "./pages/CAMPage.jsx"; | |
| import HistoryPage from "./pages/HistoryPage.jsx"; | |
| import AuthPage from "./pages/AuthPage.jsx"; | |
| import EntityOnboardingPage from "./pages/EntityOnboardingPage.jsx"; | |
| import ProtectedRoute from "./components/ProtectedRoute.jsx"; | |
| function AppShell() { | |
| const location = useLocation(); | |
| const isLanding = location.pathname === "/"; | |
| return ( | |
| <div className="grid-bg page"> | |
| <Navbar /> | |
| <div className={isLanding ? "" : "has-navbar"}> | |
| <Routes> | |
| <Route path="/" element={<LandingPage />} /> | |
| <Route path="/auth" element={<AuthPage />} /> | |
| <Route | |
| path="/onboard" | |
| element={ | |
| <ProtectedRoute> | |
| <EntityOnboardingPage /> | |
| </ProtectedRoute> | |
| } | |
| /> | |
| <Route | |
| path="/upload" | |
| element={ | |
| <ProtectedRoute> | |
| <UploadPage /> | |
| </ProtectedRoute> | |
| } | |
| /> | |
| <Route | |
| path="/analysis/:jobId" | |
| element={ | |
| <ProtectedRoute> | |
| <AnalysisPage /> | |
| </ProtectedRoute> | |
| } | |
| /> | |
| <Route | |
| path="/cam/:jobId" | |
| element={ | |
| <ProtectedRoute> | |
| <CAMPage /> | |
| </ProtectedRoute> | |
| } | |
| /> | |
| <Route | |
| path="/history" | |
| element={ | |
| <ProtectedRoute> | |
| <HistoryPage /> | |
| </ProtectedRoute> | |
| } | |
| /> | |
| </Routes> | |
| </div> | |
| </div> | |
| ); | |
| } | |
| import { ThemeProvider } from "./context/ThemeContext.jsx"; | |
| export default function App() { | |
| return ( | |
| <ThemeProvider> | |
| <AuthProvider> | |
| <ToastProvider> | |
| <BrowserRouter> | |
| <AppShell /> | |
| </BrowserRouter> | |
| </ToastProvider> | |
| </AuthProvider> | |
| </ThemeProvider> | |
| ); | |
| } | |