import {lazy, useContext} from 'react'; import Require2FA from '../components/Require2FA'; import Loadable from 'components/Loadable'; import MainLayout from "../layout/MainLayout"; import AbilityContext from "../components/AbilityProvider"; import {handleRouteAbility} from "../utils/CommonFunction"; import {Navigate} from "react-router"; // render - login const SettingPage = Loadable(lazy(() => import('pages/lionerSettingPage'))); const LogoutPage = Loadable(lazy(() => import('pages/extra-pages/LogoutPage'))); const PasswordPolicyPage = Loadable(lazy(()=> import('pages/lionerPasswordPolicyPage'))) const UserSearchPage = Loadable(lazy(()=>import ('pages/lionerUserSearchPage'))); const ConsultantSearchPage = Loadable(lazy(()=>import ('pages/pdf/ConsultantSearchPage'))); const ConsultantMaintainPage = Loadable(lazy(() => import('pages/pdf/ConsultantMaintainPage'))); const CategoryPage = Loadable(lazy(()=>import ('pages/lionerCategoryPage'))); const UserMaintainPage = Loadable(lazy(() => import('pages/lionerUserDetailPage'))); const UserGroupSearchPage = Loadable(lazy(() => import('pages/lionerUserGroupSearchPage'))); const UserGroupDetailPage = Loadable(lazy(() => import('pages/lionerUserGroupDetailPage'))); const DivisionSearchPage = Loadable(lazy(() => import('pages/lionerDivisionSearch'))); const DivisionEditPage = Loadable(lazy(() => import('pages/lionerDivisionEdit'))); const PromotionChannelPage = Loadable(lazy(() => import('pages/lionerPromotionChannelPage'))); const TagPage = Loadable(lazy(() => import('pages/lionerTagPage'))); const AuditLogPage = Loadable(lazy(() => import('pages/lionerAuditTrailPage'))); const LoginLogPage = Loadable(lazy(() => import('pages/lionerLoginLog'))); const UserActionLogPage = Loadable(lazy(() => import('pages/lionerUserActionLog'))); const EmailConfigPage = Loadable(lazy(() => import('pages/lionerEmailConfig'))); const GenerateReminderPage = Loadable(lazy(() => import('pages/lionerManualButtonPage'))); const ClientDepartmentPage = Loadable(lazy(() => import('pages/lionerClientDepartmentPage'))); const ProfilePage = Loadable(lazy(() => import('pages/profile/profile'))); // ==============================|| AUTH ROUTING ||============================== // const SettingRoutes = () => { const ability = useContext(AbilityContext); return { path: '/', element: , children: [ { path: 'category', element: ( handleRouteAbility( ability.can('MAINTAIN', 'CATEGORY'), , ) ), }, { path: 'tag', element:( handleRouteAbility( ability.can('MAINTAIN', 'TAG'), , ) ), }, { path: 'promotionChannel', element: ( handleRouteAbility( ability.can('MAINTAIN', 'PROMOTION_CHANNEL'), , ) ), }, { path: 'clientDepartment', element: ( handleRouteAbility( ability.can('MAINTAIN', 'CLIENT_DEPARTMENT'), , ) ), }, { path: 'division', element: ( handleRouteAbility( ability.can('MAINTAIN', 'DIVISION'), , ) ), }, { path: 'division/:id', element:( handleRouteAbility( ability.can('MAINTAIN', 'DIVISION'), , ) ), }, { path: 'usergroupSearchview', element: ( {handleRouteAbility( ability.can('MAINTAIN', 'USER_GROUP'), , )} ), }, { path: 'userGroup/:id', element:( {handleRouteAbility( ability.can('MAINTAIN', 'USER_GROUP'), , )} ), }, { path: 'user/:id', element: ( {handleRouteAbility( ability.can('VIEW', 'USER'), , )} ), }, { path: 'userSearchview', element:( {handleRouteAbility( ability.can('VIEW', 'USER'), , )} ), }, { path: 'consultant', element: ( {handleRouteAbility( ability.can('VIEW', 'USER'), , )} ), }, { path: 'consultant/:id', element: ( {handleRouteAbility( ability.can('VIEW', 'USER'), , )} ), }, { path: 'setting', element: ( {handleRouteAbility( ability.can('MANAGE', 'SYSTEM_CONFIGURATION'), , )} ), }, { path: 'auditLog', element:( {handleRouteAbility( ability.can('VIEW', 'AUDIT_LOG'), , )} ), }, { path: 'userActionLog', element: ( {handleRouteAbility( ability.can('VIEW', 'USER'), , )} ), }, { path: 'loginLog', element: ( {handleRouteAbility( ability.can('VIEW', 'LOGIN_LOG'), , )} ), }, { path: 'passwordpolicy', element: ( handleRouteAbility( ability.can('MANAGE', 'SYSTEM_CONFIGURATION'), , ) ), }, { path: 'profile', element: ( handleRouteAbility( true, // Or use a specific ability like ability.can('VIEW', 'PROFILE') , ) ), }, { path: 'emailConfig', element: ( handleRouteAbility( ability.can('MANAGE', 'SYSTEM_CONFIGURATION'), , ) ), }, { path: 'generateReminder', element: ( handleRouteAbility( ability.can('MANAGE', 'SYSTEM_CONFIGURATION'), , ) ), }, { path: 'logout', element: } ] } }; export default SettingRoutes;