2023-04-27 17:04:33 -04:00
|
|
|
import React from 'react';
|
2023-06-01 12:12:16 -04:00
|
|
|
import { Navigate, Outlet, Route, Routes } from 'react-router-dom';
|
2023-04-27 17:04:33 -04:00
|
|
|
|
2023-09-27 02:07:40 -04:00
|
|
|
import AppBody from 'components/AppBody';
|
2023-06-01 12:12:16 -04:00
|
|
|
import ConnectionRequired from 'components/ConnectionRequired';
|
|
|
|
import { toAsyncPageRoute } from 'components/router/AsyncRoute';
|
|
|
|
import { toViewManagerPageRoute } from 'components/router/LegacyRoute';
|
2023-04-27 17:04:33 -04:00
|
|
|
|
2023-09-20 00:02:26 -04:00
|
|
|
import { ASYNC_USER_ROUTES } from './routes/asyncRoutes';
|
|
|
|
import { LEGACY_PUBLIC_ROUTES, LEGACY_USER_ROUTES } from './routes/legacyRoutes';
|
2023-09-15 10:31:48 -04:00
|
|
|
import { REDIRECTS } from './routes/_redirects';
|
|
|
|
import { toRedirectRoute } from 'components/router/Redirect';
|
2023-06-01 12:12:16 -04:00
|
|
|
|
|
|
|
const Layout = () => (
|
2023-09-27 02:07:40 -04:00
|
|
|
<AppBody>
|
|
|
|
<Outlet />
|
|
|
|
</AppBody>
|
2023-04-27 17:04:33 -04:00
|
|
|
);
|
|
|
|
|
2023-06-01 12:12:16 -04:00
|
|
|
const StableApp = () => (
|
|
|
|
<Routes>
|
|
|
|
<Route element={<Layout />}>
|
|
|
|
{/* User routes */}
|
|
|
|
<Route path='/' element={<ConnectionRequired />}>
|
|
|
|
{ASYNC_USER_ROUTES.map(toAsyncPageRoute)}
|
|
|
|
{LEGACY_USER_ROUTES.map(toViewManagerPageRoute)}
|
|
|
|
</Route>
|
|
|
|
|
|
|
|
{/* Public routes */}
|
|
|
|
<Route path='/' element={<ConnectionRequired isUserRequired={false} />}>
|
|
|
|
<Route index element={<Navigate replace to='/home.html' />} />
|
|
|
|
|
|
|
|
{LEGACY_PUBLIC_ROUTES.map(toViewManagerPageRoute)}
|
|
|
|
</Route>
|
|
|
|
|
2023-09-20 00:02:26 -04:00
|
|
|
{/* Ignore dashboard routes */}
|
|
|
|
<Route path='/configurationpage/*' element={null} />
|
|
|
|
<Route path='/dashboard/*' element={null} />
|
|
|
|
<Route path='/metadata/*' element={null} />
|
|
|
|
|
2023-06-01 12:12:16 -04:00
|
|
|
{/* Suppress warnings for unhandled routes */}
|
|
|
|
<Route path='*' element={null} />
|
|
|
|
</Route>
|
2023-09-27 02:07:40 -04:00
|
|
|
|
|
|
|
{/* Redirects for old paths */}
|
|
|
|
{REDIRECTS.map(toRedirectRoute)}
|
2023-06-01 12:12:16 -04:00
|
|
|
</Routes>
|
|
|
|
);
|
|
|
|
|
2023-04-27 17:04:33 -04:00
|
|
|
export default StableApp;
|