feat: refactor onboarding into a multi-step flow with dedicated routes and session state management
This commit is contained in:
@@ -13,6 +13,9 @@ import { Route as ResetPasswordRouteImport } from './routes/reset-password'
|
||||
import { Route as OnboardRouteImport } from './routes/onboard'
|
||||
import { Route as LoginRouteImport } from './routes/login'
|
||||
import { Route as AppRouteRouteImport } from './routes/_app/route'
|
||||
import { Route as OnboardIndexRouteImport } from './routes/onboard/index'
|
||||
import { Route as OnboardVerifyRouteImport } from './routes/onboard/verify'
|
||||
import { Route as OnboardCompleteRouteImport } from './routes/onboard/complete'
|
||||
import { Route as AppProfileRouteImport } from './routes/_app/profile'
|
||||
import { Route as AppAboutRouteImport } from './routes/_app/about'
|
||||
import { Route as ComplexSlugBookingRouteImport } from './routes/$complexSlug/booking'
|
||||
@@ -41,6 +44,21 @@ const AppRouteRoute = AppRouteRouteImport.update({
|
||||
id: '/_app',
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any)
|
||||
const OnboardIndexRoute = OnboardIndexRouteImport.update({
|
||||
id: '/',
|
||||
path: '/',
|
||||
getParentRoute: () => OnboardRoute,
|
||||
} as any)
|
||||
const OnboardVerifyRoute = OnboardVerifyRouteImport.update({
|
||||
id: '/verify',
|
||||
path: '/verify',
|
||||
getParentRoute: () => OnboardRoute,
|
||||
} as any)
|
||||
const OnboardCompleteRoute = OnboardCompleteRouteImport.update({
|
||||
id: '/complete',
|
||||
path: '/complete',
|
||||
getParentRoute: () => OnboardRoute,
|
||||
} as any)
|
||||
const AppProfileRoute = AppProfileRouteImport.update({
|
||||
id: '/profile',
|
||||
path: '/profile',
|
||||
@@ -86,11 +104,14 @@ const AppAuthenticatedComplexSlugEditRoute =
|
||||
export interface FileRoutesByFullPath {
|
||||
'/': typeof AppAuthenticatedIndexRoute
|
||||
'/login': typeof LoginRoute
|
||||
'/onboard': typeof OnboardRoute
|
||||
'/onboard': typeof OnboardRouteWithChildren
|
||||
'/reset-password': typeof ResetPasswordRoute
|
||||
'/$complexSlug/booking': typeof ComplexSlugBookingRouteWithChildren
|
||||
'/about': typeof AppAboutRoute
|
||||
'/profile': typeof AppProfileRoute
|
||||
'/onboard/complete': typeof OnboardCompleteRoute
|
||||
'/onboard/verify': typeof OnboardVerifyRoute
|
||||
'/onboard/': typeof OnboardIndexRoute
|
||||
'/$complexSlug/booking/': typeof ComplexSlugBookingIndexRoute
|
||||
'/$complexSlug/booking/confirmed/$bookingCode': typeof ComplexSlugBookingConfirmedBookingCodeRoute
|
||||
'/complex/$slug/edit': typeof AppAuthenticatedComplexSlugEditRoute
|
||||
@@ -98,10 +119,12 @@ export interface FileRoutesByFullPath {
|
||||
export interface FileRoutesByTo {
|
||||
'/': typeof AppAuthenticatedIndexRoute
|
||||
'/login': typeof LoginRoute
|
||||
'/onboard': typeof OnboardRoute
|
||||
'/reset-password': typeof ResetPasswordRoute
|
||||
'/about': typeof AppAboutRoute
|
||||
'/profile': typeof AppProfileRoute
|
||||
'/onboard/complete': typeof OnboardCompleteRoute
|
||||
'/onboard/verify': typeof OnboardVerifyRoute
|
||||
'/onboard': typeof OnboardIndexRoute
|
||||
'/$complexSlug/booking': typeof ComplexSlugBookingIndexRoute
|
||||
'/$complexSlug/booking/confirmed/$bookingCode': typeof ComplexSlugBookingConfirmedBookingCodeRoute
|
||||
'/complex/$slug/edit': typeof AppAuthenticatedComplexSlugEditRoute
|
||||
@@ -110,12 +133,15 @@ export interface FileRoutesById {
|
||||
__root__: typeof rootRouteImport
|
||||
'/_app': typeof AppRouteRouteWithChildren
|
||||
'/login': typeof LoginRoute
|
||||
'/onboard': typeof OnboardRoute
|
||||
'/onboard': typeof OnboardRouteWithChildren
|
||||
'/reset-password': typeof ResetPasswordRoute
|
||||
'/_app/_authenticated': typeof AppAuthenticatedRouteRouteWithChildren
|
||||
'/$complexSlug/booking': typeof ComplexSlugBookingRouteWithChildren
|
||||
'/_app/about': typeof AppAboutRoute
|
||||
'/_app/profile': typeof AppProfileRoute
|
||||
'/onboard/complete': typeof OnboardCompleteRoute
|
||||
'/onboard/verify': typeof OnboardVerifyRoute
|
||||
'/onboard/': typeof OnboardIndexRoute
|
||||
'/$complexSlug/booking/': typeof ComplexSlugBookingIndexRoute
|
||||
'/_app/_authenticated/': typeof AppAuthenticatedIndexRoute
|
||||
'/$complexSlug/booking/confirmed/$bookingCode': typeof ComplexSlugBookingConfirmedBookingCodeRoute
|
||||
@@ -131,6 +157,9 @@ export interface FileRouteTypes {
|
||||
| '/$complexSlug/booking'
|
||||
| '/about'
|
||||
| '/profile'
|
||||
| '/onboard/complete'
|
||||
| '/onboard/verify'
|
||||
| '/onboard/'
|
||||
| '/$complexSlug/booking/'
|
||||
| '/$complexSlug/booking/confirmed/$bookingCode'
|
||||
| '/complex/$slug/edit'
|
||||
@@ -138,10 +167,12 @@ export interface FileRouteTypes {
|
||||
to:
|
||||
| '/'
|
||||
| '/login'
|
||||
| '/onboard'
|
||||
| '/reset-password'
|
||||
| '/about'
|
||||
| '/profile'
|
||||
| '/onboard/complete'
|
||||
| '/onboard/verify'
|
||||
| '/onboard'
|
||||
| '/$complexSlug/booking'
|
||||
| '/$complexSlug/booking/confirmed/$bookingCode'
|
||||
| '/complex/$slug/edit'
|
||||
@@ -155,6 +186,9 @@ export interface FileRouteTypes {
|
||||
| '/$complexSlug/booking'
|
||||
| '/_app/about'
|
||||
| '/_app/profile'
|
||||
| '/onboard/complete'
|
||||
| '/onboard/verify'
|
||||
| '/onboard/'
|
||||
| '/$complexSlug/booking/'
|
||||
| '/_app/_authenticated/'
|
||||
| '/$complexSlug/booking/confirmed/$bookingCode'
|
||||
@@ -164,7 +198,7 @@ export interface FileRouteTypes {
|
||||
export interface RootRouteChildren {
|
||||
AppRouteRoute: typeof AppRouteRouteWithChildren
|
||||
LoginRoute: typeof LoginRoute
|
||||
OnboardRoute: typeof OnboardRoute
|
||||
OnboardRoute: typeof OnboardRouteWithChildren
|
||||
ResetPasswordRoute: typeof ResetPasswordRoute
|
||||
ComplexSlugBookingRoute: typeof ComplexSlugBookingRouteWithChildren
|
||||
}
|
||||
@@ -199,6 +233,27 @@ declare module '@tanstack/react-router' {
|
||||
preLoaderRoute: typeof AppRouteRouteImport
|
||||
parentRoute: typeof rootRouteImport
|
||||
}
|
||||
'/onboard/': {
|
||||
id: '/onboard/'
|
||||
path: '/'
|
||||
fullPath: '/onboard/'
|
||||
preLoaderRoute: typeof OnboardIndexRouteImport
|
||||
parentRoute: typeof OnboardRoute
|
||||
}
|
||||
'/onboard/verify': {
|
||||
id: '/onboard/verify'
|
||||
path: '/verify'
|
||||
fullPath: '/onboard/verify'
|
||||
preLoaderRoute: typeof OnboardVerifyRouteImport
|
||||
parentRoute: typeof OnboardRoute
|
||||
}
|
||||
'/onboard/complete': {
|
||||
id: '/onboard/complete'
|
||||
path: '/complete'
|
||||
fullPath: '/onboard/complete'
|
||||
preLoaderRoute: typeof OnboardCompleteRouteImport
|
||||
parentRoute: typeof OnboardRoute
|
||||
}
|
||||
'/_app/profile': {
|
||||
id: '/_app/profile'
|
||||
path: '/profile'
|
||||
@@ -289,6 +344,21 @@ const AppRouteRouteWithChildren = AppRouteRoute._addFileChildren(
|
||||
AppRouteRouteChildren,
|
||||
)
|
||||
|
||||
interface OnboardRouteChildren {
|
||||
OnboardCompleteRoute: typeof OnboardCompleteRoute
|
||||
OnboardVerifyRoute: typeof OnboardVerifyRoute
|
||||
OnboardIndexRoute: typeof OnboardIndexRoute
|
||||
}
|
||||
|
||||
const OnboardRouteChildren: OnboardRouteChildren = {
|
||||
OnboardCompleteRoute: OnboardCompleteRoute,
|
||||
OnboardVerifyRoute: OnboardVerifyRoute,
|
||||
OnboardIndexRoute: OnboardIndexRoute,
|
||||
}
|
||||
|
||||
const OnboardRouteWithChildren =
|
||||
OnboardRoute._addFileChildren(OnboardRouteChildren)
|
||||
|
||||
interface ComplexSlugBookingRouteChildren {
|
||||
ComplexSlugBookingIndexRoute: typeof ComplexSlugBookingIndexRoute
|
||||
ComplexSlugBookingConfirmedBookingCodeRoute: typeof ComplexSlugBookingConfirmedBookingCodeRoute
|
||||
@@ -306,7 +376,7 @@ const ComplexSlugBookingRouteWithChildren =
|
||||
const rootRouteChildren: RootRouteChildren = {
|
||||
AppRouteRoute: AppRouteRouteWithChildren,
|
||||
LoginRoute: LoginRoute,
|
||||
OnboardRoute: OnboardRoute,
|
||||
OnboardRoute: OnboardRouteWithChildren,
|
||||
ResetPasswordRoute: ResetPasswordRoute,
|
||||
ComplexSlugBookingRoute: ComplexSlugBookingRouteWithChildren,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user