jellyfish-web/src/apps/experimental/App.tsx

50 lines
1.9 KiB
TypeScript
Raw Normal View History

2023-06-01 12:12:16 -04:00
import React from 'react';
import { Navigate, Route, Routes } from 'react-router-dom';
2023-04-27 17:04:33 -04:00
import { REDIRECTS } from 'apps/stable/routes/_redirects';
2023-06-01 12:12:16 -04:00
import ConnectionRequired from 'components/ConnectionRequired';
import ServerContentPage from 'components/ServerContentPage';
import { toAsyncPageRoute } from 'components/router/AsyncRoute';
import { toViewManagerPageRoute } from 'components/router/LegacyRoute';
import { toRedirectRoute } from 'components/router/Redirect';
2023-06-01 12:12:16 -04:00
import AppLayout from './AppLayout';
import { ASYNC_ADMIN_ROUTES, ASYNC_USER_ROUTES } from './routes/asyncRoutes';
import { LEGACY_ADMIN_ROUTES, LEGACY_PUBLIC_ROUTES, LEGACY_USER_ROUTES } from './routes/legacyRoutes';
2022-11-28 16:39:13 -05:00
const ExperimentalApp = () => {
return (
2023-06-01 12:12:16 -04:00
<Routes>
2023-06-07 17:11:27 -04:00
<Route path='/*' element={<AppLayout />}>
2023-06-01 12:12:16 -04:00
{/* User routes */}
2023-06-07 17:11:27 -04:00
<Route element={<ConnectionRequired />}>
2023-06-01 12:12:16 -04:00
{ASYNC_USER_ROUTES.map(toAsyncPageRoute)}
{LEGACY_USER_ROUTES.map(toViewManagerPageRoute)}
</Route>
{/* Admin routes */}
2023-06-07 17:11:27 -04:00
<Route element={<ConnectionRequired isAdminRequired />}>
2023-06-01 12:12:16 -04:00
{ASYNC_ADMIN_ROUTES.map(toAsyncPageRoute)}
{LEGACY_ADMIN_ROUTES.map(toViewManagerPageRoute)}
<Route path='configurationpage' element={
<ServerContentPage view='/web/configurationpage' />
} />
</Route>
{/* Public routes */}
2023-06-07 17:11:27 -04:00
<Route element={<ConnectionRequired isUserRequired={false} />}>
2023-06-01 12:12:16 -04:00
<Route index element={<Navigate replace to='/home.html' />} />
{LEGACY_PUBLIC_ROUTES.map(toViewManagerPageRoute)}
</Route>
</Route>
{/* 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 ExperimentalApp;