admin-dashboard-web/src/Components/AppRoutes/index.js

70 lines
2.3 KiB
JavaScript

import { Route, Routes } from "react-router-dom";
import Dashboard from "../../Pages/Dashboard";
import {
Constants,
WebSocketContext,
hasOnePermission,
hasPermission,
} from "../../utils";
import UserProfile from "../../Pages/UserProfile";
import Scanners from "../../Pages/Scanners";
import AdminAreaRoles from "../../Pages/AdminArea/Roles";
import AdminAreaLogs from "../../Pages/AdminArea/Logs";
import AllUsers from "../../Pages/AllUsers";
import { useContext } from "react";
import GroupTasks from "../../Pages/GroupTasks/Overview";
import GroupTasksHistory from "../../Pages/GroupTasks/History";
import PageNotFound from "../../Pages/PageNotFound";
export default function AppRoutes() {
const webSocketContext = useContext(WebSocketContext);
return (
<Routes>
<Route path="/" element={<Dashboard />} />
<Route
path={Constants.ROUTE_PATHS.GROUP_TASKS}
element={<GroupTasks isGroupTasksViewModalOpen={false} />}
/>
<Route
path={Constants.ROUTE_PATHS.GROUP_TASKS_VIEW + ":paramGroupTaskId"}
element={<GroupTasks isGroupTasksViewModalOpen={true} />}
/>
{hasPermission(
webSocketContext.User.Permissions,
Constants.PERMISSIONS.GROUP_TASKS.HISTORY
) && (
<Route
path={Constants.ROUTE_PATHS.GROUP_TASKS + "-history"}
element={<GroupTasksHistory />}
/>
)}
{hasPermission(
webSocketContext.User.Permissions,
Constants.PERMISSIONS.SCANNER.USE_SCANNERS
) && <Route path="/scanners" element={<Scanners />} />}
<Route path="/users" element={<AllUsers />} />
<Route path="/user-profile" element={<UserProfile />} />
{hasOnePermission(
webSocketContext.User.Permissions,
Constants.PERMISSIONS.ADMIN_AREA.ROLES.CREATE_NEW_ROLE,
Constants.PERMISSIONS.ADMIN_AREA.ROLES.UPDATE_ROLE,
Constants.PERMISSIONS.ADMIN_AREA.ROLES.DELETE_ROLE,
Constants.PERMISSIONS.ADMIN_AREA.ROLES.MOVE_ROLE_UP_DOWN
) && <Route path="/admin-area/roles" element={<AdminAreaRoles />} />}
{hasPermission(
webSocketContext.User.Permissions,
Constants.PERMISSIONS.ADMIN_AREA.LOGS
) && <Route path="/admin-area/logs" element={<AdminAreaLogs />} />}
<Route path="*" element={<PageNotFound />} />
</Routes>
);
}