Spaces:
Running
Running
| import "./App.css"; | |
| import { Routes, Route, BrowserRouter as Router, Navigate } from "react-router-dom"; | |
| import Navbar from '@/components/common/navbar/Navbar'; | |
| import Page from "@/components/pages/main/Page"; | |
| import Logs from "@/components/pages/logsPage/Logs"; | |
| import Vectorization from "@/components/pages/vectorizationPage/Vectorization"; | |
| import { pdfjs } from "react-pdf"; | |
| import LLMConfigList from "@/components/pages/llmConfigs/LlmConfigList"; | |
| import LlmPromptList from "@/components/pages/llmPrompts/LlmPromptList"; | |
| import LoginPage from "@/components/pages/auth/Login"; | |
| import { AuthProvider, useAuth } from "@/context/AuthContext"; | |
| pdfjs.GlobalWorkerOptions.workerSrc = new URL( | |
| "pdfjs-dist/build/pdf.worker.min.mjs", | |
| import.meta.url | |
| ).toString(); | |
| const App: React.FC = () => { | |
| const { isAuthenticated } = useAuth(); | |
| const PrivateRoute: React.FC<{ children: React.ReactNode }> = ({ children }) => { | |
| return isAuthenticated ? <>{children}</> : <Navigate to="/login" />; | |
| }; | |
| return ( | |
| <Router> | |
| <Navbar/> | |
| <div className="app-content"> | |
| <Routes> | |
| <Route path="/login" element={<LoginPage />} /> | |
| <Route path="/logs" element={ | |
| <PrivateRoute> | |
| <Logs /> | |
| </PrivateRoute>} /> | |
| <Route path="/docs" element={ | |
| <PrivateRoute> | |
| <Vectorization /> | |
| </PrivateRoute>} /> | |
| <Route path="/llmconfig" element={ | |
| <PrivateRoute> | |
| <LLMConfigList /> | |
| </PrivateRoute> | |
| } /> | |
| <Route path="/llmprompt" element={ | |
| <PrivateRoute> | |
| <LlmPromptList /> | |
| </PrivateRoute>} /> | |
| </Routes> | |
| </div> | |
| </Router> | |
| ); | |
| } | |
| const RootApp: React.FC = () => ( | |
| <AuthProvider> | |
| <App /> | |
| </AuthProvider> | |
| ); | |
| export default RootApp; | |