In this PR: - Remove SignUpLoading blank screen by an empty dark overlay => VerifyEffect - Add ModalContent from pages themselves instead of using it the Layout. This allow for empty dark overlay without showing an empty modal with padding
76 lines
3.4 KiB
TypeScript
76 lines
3.4 KiB
TypeScript
import { AppRouterProviders } from '@/app/components/AppRouterProviders';
|
|
import { SettingsRoutes } from '@/app/components/SettingsRoutes';
|
|
import { VerifyEffect } from '@/auth/components/Verify';
|
|
|
|
import { VerifyEmailEffect } from '@/auth/components/VerifyEmailEffect';
|
|
import indexAppPath from '@/navigation/utils/indexAppPath';
|
|
import { AppPath } from '@/types/AppPath';
|
|
import { BlankLayout } from '@/ui/layout/page/components/BlankLayout';
|
|
import { DefaultLayout } from '@/ui/layout/page/components/DefaultLayout';
|
|
|
|
import {
|
|
createBrowserRouter,
|
|
createRoutesFromElements,
|
|
Route,
|
|
} from 'react-router-dom';
|
|
import { Authorize } from '~/pages/auth/Authorize';
|
|
import { PasswordReset } from '~/pages/auth/PasswordReset';
|
|
import { SignInUp } from '~/pages/auth/SignInUp';
|
|
import { NotFound } from '~/pages/not-found/NotFound';
|
|
import { RecordIndexPage } from '~/pages/object-record/RecordIndexPage';
|
|
import { RecordShowPage } from '~/pages/object-record/RecordShowPage';
|
|
import { ChooseYourPlan } from '~/pages/onboarding/ChooseYourPlan';
|
|
import { CreateProfile } from '~/pages/onboarding/CreateProfile';
|
|
import { CreateWorkspace } from '~/pages/onboarding/CreateWorkspace';
|
|
import { InviteTeam } from '~/pages/onboarding/InviteTeam';
|
|
import { PaymentSuccess } from '~/pages/onboarding/PaymentSuccess';
|
|
import { SyncEmails } from '~/pages/onboarding/SyncEmails';
|
|
|
|
export const useCreateAppRouter = (
|
|
isFunctionSettingsEnabled?: boolean,
|
|
isAdminPageEnabled?: boolean,
|
|
) =>
|
|
createBrowserRouter(
|
|
createRoutesFromElements(
|
|
<Route
|
|
element={<AppRouterProviders />}
|
|
// To switch state to `loading` temporarily to enable us
|
|
// to set scroll position before the page is rendered
|
|
loader={async () => Promise.resolve(null)}
|
|
>
|
|
<Route element={<DefaultLayout />}>
|
|
<Route path={AppPath.Verify} element={<VerifyEffect />} />
|
|
<Route path={AppPath.VerifyEmail} element={<VerifyEmailEffect />} />
|
|
<Route path={AppPath.SignInUp} element={<SignInUp />} />
|
|
<Route path={AppPath.Invite} element={<SignInUp />} />
|
|
<Route path={AppPath.ResetPassword} element={<PasswordReset />} />
|
|
<Route path={AppPath.CreateWorkspace} element={<CreateWorkspace />} />
|
|
<Route path={AppPath.CreateProfile} element={<CreateProfile />} />
|
|
<Route path={AppPath.SyncEmails} element={<SyncEmails />} />
|
|
<Route path={AppPath.InviteTeam} element={<InviteTeam />} />
|
|
<Route path={AppPath.PlanRequired} element={<ChooseYourPlan />} />
|
|
<Route
|
|
path={AppPath.PlanRequiredSuccess}
|
|
element={<PaymentSuccess />}
|
|
/>
|
|
<Route path={indexAppPath.getIndexAppPath()} element={<></>} />
|
|
<Route path={AppPath.RecordIndexPage} element={<RecordIndexPage />} />
|
|
<Route path={AppPath.RecordShowPage} element={<RecordShowPage />} />
|
|
<Route
|
|
path={AppPath.SettingsCatchAll}
|
|
element={
|
|
<SettingsRoutes
|
|
isFunctionSettingsEnabled={isFunctionSettingsEnabled}
|
|
isAdminPageEnabled={isAdminPageEnabled}
|
|
/>
|
|
}
|
|
/>
|
|
<Route path={AppPath.NotFoundWildcard} element={<NotFound />} />
|
|
</Route>
|
|
<Route element={<BlankLayout />}>
|
|
<Route path={AppPath.Authorize} element={<Authorize />} />
|
|
</Route>
|
|
</Route>,
|
|
),
|
|
);
|