first commit

This commit is contained in:
2025-11-06 11:08:59 +01:00
commit 3c5117c2c3
85 changed files with 13275 additions and 0 deletions
+82
View File
@@ -0,0 +1,82 @@
import React from 'react';
import { Routes, Route, Navigate } from 'react-router-dom';
import { AuthProvider, useAuth } from './contexts/AuthContext';
import LoginPage from './pages/LoginPage';
import Dashboard from './pages/Dashboard';
import ChatPage from './pages/ChatPage';
import DocumentsPage from './pages/DocumentsPage';
import ToolsPage from './pages/ToolsPage';
import AdminPage from './pages/AdminPage';
import Layout from './components/Layout';
function ProtectedRoute({ children }) {
const { user, loading } = useAuth();
if (loading) {
return (
<div style={{
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
height: '100vh',
flexDirection: 'column',
gap: '1rem'
}}>
<div style={{
width: '2rem',
height: '2rem',
border: '3px solid #e2e8f0',
borderTop: '3px solid #3b82f6',
borderRadius: '50%',
animation: 'spin 1s linear infinite'
}}></div>
<p>Loading...</p>
</div>
);
}
if (!user) {
return <Navigate to="/login" replace />;
}
return <Layout>{children}</Layout>;
}
function App() {
return (
<AuthProvider>
<Routes>
<Route path="/login" element={<LoginPage />} />
<Route path="/dashboard" element={
<ProtectedRoute>
<Dashboard />
</ProtectedRoute>
} />
<Route path="/chat" element={
<ProtectedRoute>
<ChatPage />
</ProtectedRoute>
} />
<Route path="/documents" element={
<ProtectedRoute>
<DocumentsPage />
</ProtectedRoute>
} />
<Route path="/tools" element={
<ProtectedRoute>
<ToolsPage />
</ProtectedRoute>
} />
<Route path="/admin" element={
<ProtectedRoute>
<AdminPage />
</ProtectedRoute>
} />
<Route path="/" element={<Navigate to="/dashboard" replace />} />
<Route path="*" element={<Navigate to="/dashboard" replace />} />
</Routes>
</AuthProvider>
);
}
export default App;