import { Suspense, lazy, ElementType } from 'react'; import { Navigate, useRoutes, useLocation } from 'react-router-dom'; // layouts import DashboardLayout from '../layouts/dashboard'; import LogoOnlyLayout from '../layouts/LogoOnlyLayout'; // components import LoadingScreen from '../components/LoadingScreen'; import GuestGuard from '../guards/GuestGuard'; import { AuthProvider } from '../contexts/LaravelAuthContext'; import AuthGuard from '../guards/AuthGuard'; // import DialogDetailClaim from '../sections/dashboard/DialogDetailClaim'; // ---------------------------------------------------------------------- const Loadable = (Component: ElementType) => (props: any) => { // eslint-disable-next-line react-hooks/rules-of-hooks const { pathname } = useLocation(); return ( }> ); }; export default function Router() { return useRoutes([ { path: 'auth', children: [ { path: 'login', element: ( ), }, ], }, { path: '/', element: ( ), children: [ { element: , index: true }, { path: 'dashboard', element: , }, ], }, { path: 'user-profile/:id', element: ( ), children: [ { element: , index: true, }, ], }, { path: '/employee-data', element: ( ), children: [ { element: , index: true, }, { path: '/employee-data/user-profile/:id', element: , }, ], }, { path: '/alarm-center', element: ( ), children: [ { element: , index: true, }, { path: 'member/:id', element: , }, { path: 'member/:memberId/service-monitoring/:requestLogId', element: , }, ], }, { path: '/claim-submit', element: ( ), children: [ { element: , index: true, }, { path: 'dialog-detail', element: , }, ], }, { path: '/claim-request/:id', element: ( ), children: [ { element: , index: true, }, { path: 'dialog-detail', element: , }, ], }, { path: '/claim-report', element: ( ), children: [ { element: , index: true, }, { path: '/claim-report/detail/:id', element: , }, { path: '/claim-report/detail-history/:id', element: , }, ], }, { path: '/claims', element: ( ), children: [ { element: , index: true, }, { path: ':id', element: , }, ], }, { path: '/corporate', element: ( ), children: [ { element: , index: true, }, { path: 'edit', element: , }, { path: 'view', element: , }, ], }, { path: '*', element: , children: [ { path: '404', element: }, { path: '*', element: }, ], }, { path: 'master/formularium-template-v2', element: ( ), children: [ { element: , index: true, }, ], }, { path: 'master/formularium-template-v2/:id/detail', element: ( ), children: [ { element: , index: true, }, ], }, { path: 'master/formularium-template-v2/create', element: ( ), children: [ { element: , index: true, }, ], }, { path: 'master/formularium-template-v2/:id/edit', element: ( ), children: [ { element: , index: true, }, ], }, { path: 'master/formularium-template-v2/:id/history', element: ( ), children: [ { element: , index: true, }, ], }, { path: '*', element: }, ]); } // Auth const Login = Loadable(lazy(() => import('../pages/auth/Login'))); // Dashboard const Dashboard = Loadable(lazy(() => import('../pages/Dashboard/Index'))); const NotFound = Loadable(lazy(() => import('../pages/Page404'))); // Employee Data const EmployeeData = Loadable(lazy(() => import('../pages/EmployeeData/Index'))); const EmployeeDataUserProfile = Loadable(lazy(() => import('../pages/EmployeeData/UserProfile'))); // Alarm Center const AlarmCenter = Loadable(lazy(() => import('../pages/AlarmCenter/Index'))); const AlarmCenterMemberPerList = Loadable(lazy(() => import('../pages/AlarmCenter/ListMember'))); const AlarmCenterServiceMonitoring = Loadable( lazy(() => import('../pages/AlarmCenter/ServiceMonitoring')) ); const AlarmCenterUserProfile = Loadable(lazy(() => import('../pages/AlarmCenter/UserProfile'))); // Claim Report const ClaimReport = Loadable(lazy(() => import('../pages/ClaimReport/Index'))); const Claims = Loadable(lazy(() => import('../pages/Claims/Index'))); const ClaimShow = Loadable(lazy(() => import('../pages/Claims/Show'))); const DialogDetailClaim = Loadable(lazy(() => import('../pages/ClaimReport/DialogDetailClaim'))); const DetailClaimReport = Loadable(lazy(() => import('../pages/ClaimReport/Detail'))); const DetailHitoryClaimReport = Loadable(lazy(() => import('../pages/ClaimReport/DetailHistory'))); // Claim submit const ClaimSubmit = Loadable(lazy(() => import('../pages/ClaimSubmit/Index'))); // Claim Request const ClaimRequest = Loadable(lazy(() => import('../pages/ClaimSubmit/DialogDetailClaim'))); // Corporate const Corporate = Loadable(lazy(() => import('../pages/Corporate/Index'))); const CorporateEdit = Loadable(lazy(() => import('../pages/Corporate/Form'))); const CorporateShow = Loadable(lazy(() => import('../pages/Corporate/Show'))); // Formularium const MasterFormulariumTemplateV2 = Loadable(lazy(() => import('../pages/Master/FormulariumV2/Index'))); const MasterFormulariumTemplateCreateV2 = Loadable(lazy(() => import('../pages/Master/FormulariumV2/CreateUpdate'))); const MasterFormulariumTemplateHistoriesV2 = Loadable(lazy(() => import('../pages/Master/FormulariumV2/History'))); const MasterFormulariumTemplateDetailV2 = Loadable(lazy(() => import('../pages/Master/FormulariumV2/Detail/Index')));