feat(web): React-фронтенд вместо Flet + fix restore rmtree на bind-mount
web-react/: SPA Vite+React+TS, nginx раздаёт статику и проксирует /api на api:8000 по локалке. docker-compose: web(Flet)->web-react на :80. transfer_crud.backup_restore: чистим содержимое data/radar вместо rmtree точки монтирования (EBUSY).
This commit is contained in:
38
web-react/src/App.tsx
Normal file
38
web-react/src/App.tsx
Normal file
@@ -0,0 +1,38 @@
|
||||
import { BrowserRouter, Navigate, Route, Routes } from "react-router-dom";
|
||||
import { AuthProvider } from "./auth/AuthContext";
|
||||
import { ThemeProvider } from "./theme/ThemeContext";
|
||||
import { ProtectedRoute } from "./components/ProtectedRoute";
|
||||
import { LoginPage } from "./pages/LoginPage";
|
||||
import { RegisterPage } from "./pages/RegisterPage";
|
||||
import { HomePage } from "./pages/HomePage";
|
||||
import { TestListPage } from "./pages/TestListPage";
|
||||
import { PollPage } from "./pages/PollPage";
|
||||
import { MyTestsPage } from "./pages/MyTestsPage";
|
||||
import { ResponsePage } from "./pages/ResponsePage";
|
||||
import { ProfilePage } from "./pages/ProfilePage";
|
||||
|
||||
function protect(el: React.ReactNode) {
|
||||
return <ProtectedRoute>{el}</ProtectedRoute>;
|
||||
}
|
||||
|
||||
export default function App() {
|
||||
return (
|
||||
<ThemeProvider>
|
||||
<AuthProvider>
|
||||
<BrowserRouter>
|
||||
<Routes>
|
||||
<Route path="/login" element={<LoginPage />} />
|
||||
<Route path="/register" element={<RegisterPage />} />
|
||||
<Route path="/" element={protect(<HomePage />)} />
|
||||
<Route path="/tests" element={protect(<TestListPage />)} />
|
||||
<Route path="/poll/:pollId" element={protect(<PollPage />)} />
|
||||
<Route path="/my-tests" element={protect(<MyTestsPage />)} />
|
||||
<Route path="/response/:responseId" element={protect(<ResponsePage />)} />
|
||||
<Route path="/profile" element={protect(<ProfilePage />)} />
|
||||
<Route path="*" element={<Navigate to="/" replace />} />
|
||||
</Routes>
|
||||
</BrowserRouter>
|
||||
</AuthProvider>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user