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

322 lines
8.9 KiB
JavaScript

import { Route, Routes } from "react-router-dom";
import { Constants, hasOnePermission, hasPermission } from "../../utils";
import { useAppContext } from "../../Contexts/AppContext";
import { lazy } from "react";
import { MySupsenseFallback } from "../MySupsenseFallback";
// Lazy-loaded components
const Dashboard = lazy(() => import("../../Pages/Dashboard"));
const GroupTasks = lazy(() => import("../../Pages/GroupTasks/Overview"));
const UserProfile = lazy(() => import("../../Pages/UserProfile"));
const Scanners = lazy(() => import("../../Pages/Scanners"));
const AdminAreaRoles = lazy(() => import("../../Pages/AdminArea/Roles"));
const AdminAreaLogs = lazy(() => import("../../Pages/AdminArea/Logs"));
const AdminAreaManage = lazy(() => import("../../Pages/AdminArea/Manage"));
const AllUsers = lazy(() => import("../../Pages/AllUsers"));
const GroupTasksHistory = lazy(() => import("../../Pages/GroupTasks/History"));
const PageNotFound = lazy(() => import("../../Pages/PageNotFound"));
const EquipmentDocumentationOverview = lazy(() =>
import("../../Pages/EquipmentDocumentation")
);
const ViewEquipmentDocumentations = lazy(() =>
import("../../Pages/EquipmentDocumentation/ViewEquipmentDocumentation")
);
const Consoles = lazy(() => import("../../Pages/Consoles"));
const RoboticsRobots = lazy(() => import("../../Pages/Robotics/Robots"));
// const Crm = lazy(() => import("../../Pages/Crm"));
const CrmTest = lazy(() => import("../../Pages/CrmTest/CrmTest"));
const CustomerFeedback = lazy(() => import("../../Pages/CustomerFeedback"));
export default function AppRoutes({ userSession, setUserSession }) {
const appContext = useAppContext();
console.info("appRoutes");
return (
<Routes>
<Route
path="/"
element={
<MySupsenseFallback>
<Dashboard />
</MySupsenseFallback>
}
/>
{hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.EQUIPMENT_DOCUMENTATION.VIEW
) && (
<Route
path={Constants.ROUTE_PATHS.EQUIPMENT_DOCUMENTATION}
element={
<MySupsenseFallback>
<EquipmentDocumentationOverview />
</MySupsenseFallback>
}
/>
)}
{hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.EQUIPMENT_DOCUMENTATION.VIEW
) && (
<Route
path={`${Constants.ROUTE_PATHS.EQUIPMENT_DOCUMENTATION_VIEW}:paramStockId`}
element={
<MySupsenseFallback>
<ViewEquipmentDocumentations />
</MySupsenseFallback>
}
/>
)}
{hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.EQUIPMENT_DOCUMENTATION.EDIT
) && (
<Route
path={`${Constants.ROUTE_PATHS.EQUIPMENT_DOCUMENTATION_VIEW}:paramStockId/edit/:paramDocumentationId`}
element={
<MySupsenseFallback>
<ViewEquipmentDocumentations
isEditEquipmentDocumentationModalOpen={true}
/>
</MySupsenseFallback>
}
/>
)}
{hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.EQUIPMENT_DOCUMENTATION.CREATE
) && (
<Route
path={`${Constants.ROUTE_PATHS.EQUIPMENT_DOCUMENTATION_VIEW}:paramStockId/create`}
element={
<MySupsenseFallback>
<ViewEquipmentDocumentations
isCreateEquipmentDocumentationModalOpen={true}
/>
</MySupsenseFallback>
}
/>
)}
<Route
path={`${Constants.ROUTE_PATHS.GROUP_TASKS}:paramCategory`}
element={
<MySupsenseFallback>
<GroupTasks isGroupTasksViewModalOpen={false} />
</MySupsenseFallback>
}
/>
<Route
path={`${Constants.ROUTE_PATHS.GROUP_TASKS}:paramCategory/view/:paramGroupTaskId`}
element={
<MySupsenseFallback>
<GroupTasks isGroupTasksViewModalOpen={true} />
</MySupsenseFallback>
}
/>
{hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.GROUP_TASKS.HISTORY
) && (
<Route
path={Constants.ROUTE_PATHS.GROUP_TASKS_HISTORY}
element={
<MySupsenseFallback>
<GroupTasksHistory />
</MySupsenseFallback>
}
/>
)}
<Route
path={Constants.ROUTE_PATHS.SCANNERS}
element={
<MySupsenseFallback>
<Scanners />
</MySupsenseFallback>
}
/>
<Route
path={Constants.ROUTE_PATHS.USERS}
element={
<MySupsenseFallback>
<AllUsers />
</MySupsenseFallback>
}
/>
<Route
path={Constants.ROUTE_PATHS.USER_PROFILE}
element={
<MySupsenseFallback>
<UserProfile
userSession={userSession}
setUserSession={setUserSession}
/>
</MySupsenseFallback>
}
/>
{hasOnePermission(
appContext.userPermissions,
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={Constants.ROUTE_PATHS.ADMIN_AREA_ROLES}
element={
<MySupsenseFallback>
<AdminAreaRoles />
</MySupsenseFallback>
}
/>
)}
{hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.ADMIN_AREA.LOGS
) && (
<Route
path={Constants.ROUTE_PATHS.ADMIN_AREA_LOGS}
element={
<MySupsenseFallback>
<AdminAreaLogs />
</MySupsenseFallback>
}
/>
)}
{hasOnePermission(
appContext.userPermissions,
Constants.PERMISSIONS.ADMIN_AREA.MANAGE
.CHECK_WHICH_CATEGORIES_ARE_AVAILABLE,
Constants.PERMISSIONS.ADMIN_AREA.MANAGE
.ADD_LOG_MANAGER_SERVER_CONNECTION,
Constants.PERMISSIONS.ADMIN_AREA.MANAGE
.REMOVE_LOG_MANAGER_SERVER_CONNECTION
) && (
<Route
path={Constants.ROUTE_PATHS.ADMIN_AREA_MANAGE}
element={
<MySupsenseFallback>
<AdminAreaManage />
</MySupsenseFallback>
}
/>
)}
{hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.CONSOLES.VIEW
) && (
<Route
path={Constants.ROUTE_PATHS.CONSOLES}
element={
<MySupsenseFallback>
<Consoles />
</MySupsenseFallback>
}
/>
)}
{hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.ROBOTICS.ROBOTS.VIEW
) && (
<Route
path={Constants.ROUTE_PATHS.ROBOTICS_ROBOTS}
element={
<MySupsenseFallback>
<RoboticsRobots />
</MySupsenseFallback>
}
/>
)}
{hasOnePermission(
appContext.userPermissions,
Constants.PERMISSIONS.CRM.CUSTOMERS.VIEW,
Constants.PERMISSIONS.CRM.DMC_PIPELINE.VIEW,
Constants.PERMISSIONS.CRM.SETTER_CLOSER.VIEW
) && (
<Route
path={Constants.ROUTE_PATHS.CRM_TEST}
element={
<MySupsenseFallback>
<CrmTest />
</MySupsenseFallback>
}
/>
)}
{hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.CUSTOMERFEEDBACK.VIEW
) && (
<Route
path={Constants.ROUTE_PATHS.CUSTOMERFEEDBACK_VIEW}
element={
<MySupsenseFallback>
<CustomerFeedback />
</MySupsenseFallback>
}
/>
)}
{hasPermission(
appContext.userPermissions,
Constants.PERMISSIONS.CUSTOMERFEEDBACK.VIEW
) && (
<Route
path={`${Constants.ROUTE_PATHS.CUSTOMERFEEDBACK_VIEW}/:paramOrigin`}
element={
<MySupsenseFallback>
<CustomerFeedback />
</MySupsenseFallback>
}
/>
)}
<Route
path="*"
element={
<MySupsenseFallback>
<PageNotFound />
</MySupsenseFallback>
}
/>
</Routes>
);
}
/*
{hasOnePermission(
appContext.userPermissions,
Constants.PERMISSIONS.CRM.CUSTOMERS.VIEW,
Constants.PERMISSIONS.CRM.DMC_PIPELINE.VIEW,
Constants.PERMISSIONS.CRM.SETTER_CLOSER.VIEW
) && (
<Route
path={`${Constants.ROUTE_PATHS.CRM}:paramType/:paramDealPhase`}
element={
<MySupsenseFallback>
<Crm />
</MySupsenseFallback>
}
/>
)}
*/