97 lines
2.9 KiB
TypeScript
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}
|