Files
digifi-bko/src/app/routing/PrivateRoutes.tsx
T
2024-04-25 14:13:45 +01:00

97 lines
2.9 KiB
TypeScript

import {lazy, FC, Suspense} from 'react'
import {Route, Routes, Navigate} from 'react-router-dom'
import {MasterLayout} from '../../_digifi/layout/MasterLayout'
import TopBarProgress from 'react-topbar-progress-indicator'
import {DashboardWrapper} from '../pages/dashboard/DashboardWrapper'
import {MenuTestPage} from '../pages/MenuTestPage'
import {getCSSVariableValue} from '../../_digifi/assets/ts/_utils'
import {WithChildren} from '../../_digifi/helpers'
import BuilderPageWrapper from '../pages/layout-builder/BuilderPageWrapper'
const PrivateRoutes = () => {
const ProcessPage = lazy(() => import('../modules/process/ProcessPage'))
const WizardsPage = lazy(() => import('../modules/wizards/WizardsPage'))
const AccountPage = lazy(() => import('../modules/accounts/AccountPage'))
const WidgetsPage = lazy(() => import('../modules/widgets/WidgetsPage'))
const ChatPage = lazy(() => import('../modules/apps/chat/ChatPage'))
const UsersPage = lazy(() => import('../modules/apps/user-management/UsersPage'))
return (
<Routes>
<Route element={<MasterLayout />}>
{/* Redirect to Dashboard after success login/registartion */}
<Route path='auth/*' element={<Navigate to='/dashboard' />} />
{/* Pages */}
<Route path='dashboard' element={<DashboardWrapper />} />
<Route path='builder' element={<BuilderPageWrapper />} />
<Route path='menu-test' element={<MenuTestPage />} />
{/* Lazy Modules */}
<Route
path='loan/pages/process/*'
element={
<SuspensedView>
<ProcessPage />
</SuspensedView>
}
/>
<Route
path='crafted/pages/wizards/*'
element={
<SuspensedView>
<WizardsPage />
</SuspensedView>
}
/>
<Route
path='crafted/widgets/*'
element={
<SuspensedView>
<WidgetsPage />
</SuspensedView>
}
/>
<Route
path='crafted/account/*'
element={
<SuspensedView>
<AccountPage />
</SuspensedView>
}
/>
<Route
path='apps/chat/*'
element={
<SuspensedView>
<ChatPage />
</SuspensedView>
}
/>
<Route
path='apps/user-management/*'
element={
<SuspensedView>
<UsersPage />
</SuspensedView>
}
/>
{/* Page Not Found */}
<Route path='*' element={<Navigate to='/error/404' />} />
</Route>
</Routes>
)
}
const SuspensedView: FC<WithChildren> = ({children}) => {
const baseColor = getCSSVariableValue('--bs-primary')
TopBarProgress.config({
barColors: {
'0': baseColor,
},
barThickness: 1,
shadowBlur: 5,
})
return <Suspense fallback={<TopBarProgress />}>{children}</Suspense>
}
export {PrivateRoutes}