74 lines
2.9 KiB
JavaScript
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>
|
|
);
|
|
};
|