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 { RegisterForm } from '../sections/auth/register'; import Register from '../pages/auth/Register'; import ResetPassword from '../pages/auth/ResetPassword'; import VerifyCode from '../pages/auth/VerifyCode'; import { AuthProvider } from '../contexts/LaravelAuthContext'; import AuthGuard from '../guards/AuthGuard'; // ---------------------------------------------------------------------- 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: 'register', element: ( ), }, // { path: 'login-unprotected', element: }, // { path: 'register-unprotected', element: }, // { path: 'reset-password', element: }, // { path: 'verify', element: }, ], }, // { // path: '/', // element: , // }, { path: '/', element: ( ), children:[ { element: , index: true }, { path: 'dashboard', element: , }, { path: 'members', element: , }, { path: 'corporates', element: , }, { path: 'corporates/create', element: , }, { path: 'corporates/:corporate_id', element: , }, { path: 'corporates/:corporate_id/edit', element: , }, { path: 'corporates/:corporate_id/divisions', element: , }, { path: 'corporates/:corporate_id/divisions/create', element: , }, { path: 'corporates/:corporate_id/divisions/:id/edit', element: , }, { path: 'corporates/:corporate_id/members', element: , }, { path: 'corporates/:corporate_id/plans/create', element: , }, { path: 'corporates/:corporate_id/plans', element: , }, { path: 'corporates/:corporate_id/corporate-plans/create', element: , }, { path: 'corporates/:corporate_id/corporate-plans/:id/edit', element: , }, { path: 'corporates/:corporate_id/corporate-plans', element: , }, { path: 'corporates/:corporate_id/benefits/create', element: , }, { path: 'corporates/:corporate_id/benefits', element: , }, { path: 'corporates/:corporate_id/corporate-benefits/create', element: , }, { path: 'corporates/:corporate_id/corporate-benefits', element: , }, { path: 'corporates/:corporate_id/corporate-benefits/:id/edit', element: , }, { path: 'corporates/:corporate_id/diagnosis-exclusions', element: , }, { path: 'master/diagnosis', element: , }, ] }, // { // path: '/dashboard', // element: , // children: [ // { element: , index: true }, // { path: 'one', element: // }, // { path: 'two', element: // }, // { path: 'three', element: // }, // { // path: 'user', // children: [ // { element: , index: true }, // { path: 'four', element: }, // { path: 'six', element: }, // ], // }, // ], // }, { path: '*', element: , children: [ { path: '404', element: }, { path: '*', element: }, ], }, { path: '*', element: }, ]); } const Login = Loadable(lazy(() => import('../pages/auth/Login'))); // Dashboard const Dashboard = Loadable(lazy(() => import('../pages/Dashboard'))); const NotFound = Loadable(lazy(() => import('../pages/Page404'))); // Members const Members = Loadable(lazy(() => import('../pages/Members/Index'))); const MedicinesCreate = Loadable(lazy(() => import('../pages/Medicines/Create'))); const Corporate = Loadable(lazy(() => import('../pages/Corporates/Index'))); const CorporateCreate = Loadable(lazy(() => import('../pages/Corporates/CreateUpdate'))); const CorporateShow = Loadable(lazy(() => import('../pages/Corporates/Show'))); const CorporateDivisions = Loadable(lazy(() => import('../pages/Corporates/Division/Index'))); const CorporateDivisionsCreate = Loadable(lazy(() => import('../pages/Corporates/Division/CreateUpdate'))); const CorporateMembers = Loadable(lazy(() => import('../pages/Corporates/Member/Index'))); const BenefitCreate = Loadable(lazy(() => import('../pages/Corporates/Benefit/Create'))); const Benefits = Loadable(lazy(() => import('../pages/Corporates/Benefit/Index'))); const CorporateBenefitsCreate = Loadable(lazy(() => import('../pages/Corporates/CorporateBenefit/CreateUpdate'))); const CorporateBenefits = Loadable(lazy(() => import('../pages/Corporates/CorporateBenefit/Index'))); const CorporatePlanCreate = Loadable(lazy(() => import('../pages/Corporates/CorporatePlan/CreateUpdate'))); const CorporatePlans = Loadable(lazy(() => import('../pages/Corporates/CorporatePlan/Index'))); const PlanCreate = Loadable(lazy(() => import('../pages/Corporates/Plan/Create'))); const Plans = Loadable(lazy(() => import('../pages/Corporates/Plan/Index'))); const DiagnosisExclusions = Loadable(lazy(() => import('../pages/Corporates/DiagnosisExclusion/Index'))); const MasterDiagnosis = Loadable(lazy(() => import('../pages/Master/Diagnosis/Index')));