forked from ddrilling/asb_cloud_front
58 lines
2.4 KiB
TypeScript
58 lines
2.4 KiB
TypeScript
import { BrowserRouter as Router, Navigate, Route, Routes } from 'react-router-dom'
|
|
import { lazy, memo, Suspense } from 'react'
|
|
|
|
import { RootPathContext } from '@asb/context'
|
|
import SuspenseFallback from '@components/SuspenseFallback'
|
|
import { NoAccessComponent } from '@utils'
|
|
|
|
import '@styles/pages/App.less'
|
|
|
|
const UserOutlet = lazy(() => import('@components/outlets/UserOutlet'))
|
|
const DepositsOutlet = lazy(() => import('@components/outlets/DepositsOutlet'))
|
|
const LayoutPortal = lazy(() => import('@components/LayoutPortal'))
|
|
|
|
const Login = lazy(() => import('@pages/public/Login'))
|
|
const Register = lazy(() => import('@pages/public/Register'))
|
|
const FileDownload = lazy(() => import('@pages/FileDownload'))
|
|
|
|
const AdminPanel = lazy(() => import('@pages/AdminPanel'))
|
|
const Deposit = lazy(() => import('@pages/Deposit'))
|
|
const Cluster = lazy(() => import('@pages/Cluster'))
|
|
const Well = lazy(() => import('@pages/Well'))
|
|
|
|
export const App = memo(() => (
|
|
<RootPathContext.Provider value={''}>
|
|
<Suspense fallback={<SuspenseFallback style={{ minHeight: '100vh' }} />}>
|
|
<Router>
|
|
<Routes>
|
|
<Route index element={<Navigate to={'deposit'} replace />} />
|
|
<Route path={'*'} element={<NoAccessComponent />} />
|
|
|
|
{/* Public pages */}
|
|
<Route path={'/login'} element={<Login />} />
|
|
<Route path={'/register'} element={<Register />} />
|
|
|
|
{/* User pages */}
|
|
<Route element={<UserOutlet />}>
|
|
<Route path={'/file_download/:idFile/*'} element={<FileDownload />} />
|
|
|
|
<Route element={<DepositsOutlet />}>
|
|
<Route element={<LayoutPortal />}>
|
|
{/* Admin pages */}
|
|
<Route path={'/admin/*'} element={<AdminPanel />} />
|
|
|
|
{/* Client pages */}
|
|
<Route path={'/deposit/*'} element={<Deposit />} />
|
|
<Route path={'/cluster/:idCluster'} element={<Cluster />} />
|
|
<Route path={'/well/:idWell/*'} element={<Well />} />
|
|
</Route>
|
|
</Route>
|
|
</Route>
|
|
</Routes>
|
|
</Router>
|
|
</Suspense>
|
|
</RootPathContext.Provider>
|
|
))
|
|
|
|
export default App
|