2026-10-01 15:43:26 +03:00

74 lines
2.9 KiB
JavaScript

import { CircularProgress } from '@mui/material';
import { Navigate, Outlet, Route, Routes } from 'react-router-dom';
import AuditLogsPage from '../pages/AdminPanel/AuditLogsPage/AuditLogsPage.jsx';
import SspsPage from '../pages/AdminPanel/SppsPage/SppsPage';
import UsersPage from '../pages/AdminPanel/UsersPage/UsersPage';
import PhaseTemplatesPage from '../pages/AdminPanel/PhaseTemplatesPage/PhaseTemplatesPage';
import DictVspPage from '../pages/DictVspPage/DictVspPage.jsx';
import DictsNavigatorPage from '../pages/DictsNavigatorPage/DictsNavigatorPage.jsx';
import LoginPage from '../pages/LoginPage';
import NewFormTablePage from '../pages/NewFormTablePage.jsx';
import NavigationProjectPage from '../pages/ProjectPages/NavigationProjectPage.jsx';
import ProjectSummariesPage from '../pages/ProjectPages/ProjectSummariesPage.jsx';
import Svod2Page from '../pages/Svod2Page/Svod2Page.jsx';
import { SvodProvider } from '../pages/SvodPage/SvodContext.jsx';
import SvodPage from '../pages/SvodPage/SvodPage.jsx';
import SvodsNavigatorPage from '../pages/SvodsNavigatorPage/SvodsNavigatorPage.jsx';
import TaskPage from '../pages/TaskPage/TaskPage';
import TasksPage from '../pages/TasksPage/TasksPage';
import { useAuth } from './context/AuthProvider';
import { Layout } from './layout/Layout';
export const PrivateRoute = () => {
const { isAuthenticated, loading } = useAuth();
if (loading) {
<CircularProgress />;
}
return isAuthenticated ? <Outlet /> : <Navigate to='/login' replace />;
};
export const AppRoutes = () => {
return (
<Routes>
<Route path='/login' element={<LoginPage />} />
<Route element={<Layout />}>
<Route element={<PrivateRoute />}>
<Route path='/' element={<TasksPage />} />
<Route path='/tasks' element={<TasksPage />} />
<Route path='/projects' element={<NavigationProjectPage />} />
<Route path='/projects/summaries' element={<ProjectSummariesPage />} />
<Route path='/task/:taskId' element={<TaskPage />} />
<Route path='/project/:projectId' element={<TaskPage />} />
<Route path='/admin_panel/users' element={<UsersPage />} />
<Route path='/admin_panel/ssps' element={<SspsPage />} />
<Route path='/admin_panel/default-stage' element={<PhaseTemplatesPage />} />
<Route path='/admin_panel/audit-log' element={<AuditLogsPage />} />
<Route path='/dicts/dict-vsp' element={<DictVspPage />} />
<Route path='/dicts-navigator' element={<DictsNavigatorPage />} />
<Route path='/table/form/:formId/form-type/:formType/:sheetName/:direction/:year' element={<NewFormTablePage />} />
<Route path='/svods-navigator' element={<SvodsNavigatorPage />} />
<Route
path='/svod/2'
element={
<SvodProvider summaryNumber={2} sheetValues={['GO', 'RF']}>
<Svod2Page />
</SvodProvider>
}
/>
<Route
path='/svod'
element={
<SvodProvider>
<SvodPage />
</SvodProvider>
}
/>
</Route>
</Route>
</Routes>
);
};