/
zemars
/
it-dashboard
Обзор
Документация
Войти
/
zemars
/
it-dashboard
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
frontend/src/App.jsx
47 строк
1 KB
Дмитрий
fix(docs): актуализировать risk_log и docstring init_db
26 май 2026, 22:07
26 май 2026, 22:07
9981d43
Код
Авторство
О чём код?
// Автор: Максим Учайкин — корневой компонент с роутингом. // PrivateRoute (Никита Синадский) — защищает маршруты. import { Routes, Route, Navigate, useLocation } from 'react-router-dom' import { useAuth } from './context/AuthContext.jsx' import LoginPage from './pages/LoginPage.jsx' import DashboardPage from './pages/DashboardPage.jsx' import ImportPage from './pages/ImportPage.jsx' function PrivateRoute({ children, requiredRole }) { // Никита Синадский: редирект неавторизованных на /login, // и operator на /dashboard при попытке зайти в /import. const { user, token } = useAuth() const location = useLocation() if (!token || !user) { return <Navigate to="/login" state={{ from: location }} replace /> } if (requiredRole && user.role !== requiredRole) { return <Navigate to="/dashboard" replace /> } return children } export default function App() { return ( <Routes> <Route path="/login" element={<LoginPage />} /> <Route path="/dashboard" element={ <PrivateRoute> <DashboardPage /> </PrivateRoute> } /> <Route path="/import" element={ <PrivateRoute requiredRole="analyst"> <ImportPage /> </PrivateRoute> } /> <Route path="*" element={<Navigate to="/dashboard" replace />} /> </Routes> ) }