import React from 'react'; import { Provider as JotaiProvider } from 'jotai'; import { Route, RouterProvider, createBrowserRouter, createHashRouter, createRoutesFromElements, redirect, } from 'react-router-dom'; import { ClientConfigLoader } from '../components/ClientConfigLoader'; import { ClientConfig, ClientConfigProvider } from '../hooks/useClientConfig'; import { AuthLayout, Login, Register, ResetPassword, authLayoutLoader } from './auth'; import { LOGIN_PATH, REGISTER_PATH, RESET_PASSWORD_PATH, ROOT_PATH } from './paths'; import { isAuthenticated } from '../../client/state/auth'; import Client from '../templates/client/Client'; import { getLoginPath } from './pathUtils'; import { ConfigConfigError, ConfigConfigLoading } from './ConfigConfig'; const createRouter = (clientConfig: ClientConfig) => { const { hashRouter } = clientConfig; const routes = createRoutesFromElements( { if (isAuthenticated()) return redirect('/home'); return redirect(getLoginPath()); }} /> }> } /> } /> } /> { if (!isAuthenticated()) return redirect(getLoginPath()); return null; }} > } /> direct

} /> :spaceIdOrAlias

} /> explore

} />
Page not found

} />
); if (hashRouter?.enabled) { return createHashRouter(routes, { basename: hashRouter.basename }); } return createBrowserRouter(routes, { basename: import.meta.env.BASE_URL, }); }; // TODO: app crash boundary function App() { return ( } error={(err, retry, ignore) => ( )} > {(clientConfig) => ( )} ); } export default App;