BlueFin / frontend /src /App.jsx
vedanshmadan21's picture
feat: rename to Blue-Fin, add entity onboarding 2-step form with progress indicator
2fd574a
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>
);
}