refactor(onboarding): restructure onboarding routes and components

- Removed obsolete onboarding routes: complete, create-complex, index, verify-email, and verify.
- Introduced new setup stepper page for onboarding process.
- Created a multi-step setup component to handle complex creation with validation.
- Added new schemas for complex creation and plan features.
- Implemented detailed steps for complex name, location, plan selection, and court setup.
- Enhanced error handling and user feedback during the onboarding process.
This commit is contained in:
Jose Selesan
2026-06-02 10:02:28 -03:00
parent 2aaa91444d
commit 4544911f0e
51 changed files with 1006 additions and 2383 deletions

View File

@@ -17,11 +17,7 @@ import { Route as LoginRouteImport } from './routes/login'
import { Route as InviteRouteImport } from './routes/invite'
import { Route as AuthCallbackRouteImport } from './routes/auth-callback'
import { Route as AppRouteRouteImport } from './routes/_app/route'
import { Route as OnboardIndexRouteImport } from './routes/onboard/index'
import { Route as OnboardVerifyEmailRouteImport } from './routes/onboard/verify-email'
import { Route as OnboardVerifyRouteImport } from './routes/onboard/verify'
import { Route as OnboardCreateComplexRouteImport } from './routes/onboard/create-complex'
import { Route as OnboardCompleteRouteImport } from './routes/onboard/complete'
import { Route as OnboardSetupRouteImport } from './routes/onboard/setup'
import { Route as AppProfileRouteImport } from './routes/_app/profile'
import { Route as ComplexSlugBookingRouteImport } from './routes/$complexSlug/booking'
import { Route as AppAuthenticatedRouteRouteImport } from './routes/_app/_authenticated/route'
@@ -69,29 +65,9 @@ const AppRouteRoute = AppRouteRouteImport.update({
id: '/_app',
getParentRoute: () => rootRouteImport,
} as any)
const OnboardIndexRoute = OnboardIndexRouteImport.update({
id: '/',
path: '/',
getParentRoute: () => OnboardRoute,
} as any)
const OnboardVerifyEmailRoute = OnboardVerifyEmailRouteImport.update({
id: '/verify-email',
path: '/verify-email',
getParentRoute: () => OnboardRoute,
} as any)
const OnboardVerifyRoute = OnboardVerifyRouteImport.update({
id: '/verify',
path: '/verify',
getParentRoute: () => OnboardRoute,
} as any)
const OnboardCreateComplexRoute = OnboardCreateComplexRouteImport.update({
id: '/create-complex',
path: '/create-complex',
getParentRoute: () => OnboardRoute,
} as any)
const OnboardCompleteRoute = OnboardCompleteRouteImport.update({
id: '/complete',
path: '/complete',
const OnboardSetupRoute = OnboardSetupRouteImport.update({
id: '/setup',
path: '/setup',
getParentRoute: () => OnboardRoute,
} as any)
const AppProfileRoute = AppProfileRouteImport.update({
@@ -142,11 +118,7 @@ export interface FileRoutesByFullPath {
'/signup': typeof SignupRoute
'/$complexSlug/booking': typeof ComplexSlugBookingRouteWithChildren
'/profile': typeof AppProfileRoute
'/onboard/complete': typeof OnboardCompleteRoute
'/onboard/create-complex': typeof OnboardCreateComplexRoute
'/onboard/verify': typeof OnboardVerifyRoute
'/onboard/verify-email': typeof OnboardVerifyEmailRoute
'/onboard/': typeof OnboardIndexRoute
'/onboard/setup': typeof OnboardSetupRoute
'/$complexSlug/booking/': typeof ComplexSlugBookingIndexRoute
'/$complexSlug/booking/confirmed/$bookingCode': typeof ComplexSlugBookingConfirmedBookingCodeRoute
'/complex/$slug/edit': typeof AppAuthenticatedComplexSlugEditRoute
@@ -156,15 +128,12 @@ export interface FileRoutesByTo {
'/auth-callback': typeof AuthCallbackRoute
'/invite': typeof InviteRoute
'/login': typeof LoginRoute
'/onboard': typeof OnboardRouteWithChildren
'/reset-password': typeof ResetPasswordRoute
'/select-complex': typeof SelectComplexRoute
'/signup': typeof SignupRoute
'/profile': typeof AppProfileRoute
'/onboard/complete': typeof OnboardCompleteRoute
'/onboard/create-complex': typeof OnboardCreateComplexRoute
'/onboard/verify': typeof OnboardVerifyRoute
'/onboard/verify-email': typeof OnboardVerifyEmailRoute
'/onboard': typeof OnboardIndexRoute
'/onboard/setup': typeof OnboardSetupRoute
'/$complexSlug/booking': typeof ComplexSlugBookingIndexRoute
'/$complexSlug/booking/confirmed/$bookingCode': typeof ComplexSlugBookingConfirmedBookingCodeRoute
'/complex/$slug/edit': typeof AppAuthenticatedComplexSlugEditRoute
@@ -182,11 +151,7 @@ export interface FileRoutesById {
'/_app/_authenticated': typeof AppAuthenticatedRouteRouteWithChildren
'/$complexSlug/booking': typeof ComplexSlugBookingRouteWithChildren
'/_app/profile': typeof AppProfileRoute
'/onboard/complete': typeof OnboardCompleteRoute
'/onboard/create-complex': typeof OnboardCreateComplexRoute
'/onboard/verify': typeof OnboardVerifyRoute
'/onboard/verify-email': typeof OnboardVerifyEmailRoute
'/onboard/': typeof OnboardIndexRoute
'/onboard/setup': typeof OnboardSetupRoute
'/$complexSlug/booking/': typeof ComplexSlugBookingIndexRoute
'/_app/_authenticated/': typeof AppAuthenticatedIndexRoute
'/$complexSlug/booking/confirmed/$bookingCode': typeof ComplexSlugBookingConfirmedBookingCodeRoute
@@ -205,11 +170,7 @@ export interface FileRouteTypes {
| '/signup'
| '/$complexSlug/booking'
| '/profile'
| '/onboard/complete'
| '/onboard/create-complex'
| '/onboard/verify'
| '/onboard/verify-email'
| '/onboard/'
| '/onboard/setup'
| '/$complexSlug/booking/'
| '/$complexSlug/booking/confirmed/$bookingCode'
| '/complex/$slug/edit'
@@ -219,15 +180,12 @@ export interface FileRouteTypes {
| '/auth-callback'
| '/invite'
| '/login'
| '/onboard'
| '/reset-password'
| '/select-complex'
| '/signup'
| '/profile'
| '/onboard/complete'
| '/onboard/create-complex'
| '/onboard/verify'
| '/onboard/verify-email'
| '/onboard'
| '/onboard/setup'
| '/$complexSlug/booking'
| '/$complexSlug/booking/confirmed/$bookingCode'
| '/complex/$slug/edit'
@@ -244,11 +202,7 @@ export interface FileRouteTypes {
| '/_app/_authenticated'
| '/$complexSlug/booking'
| '/_app/profile'
| '/onboard/complete'
| '/onboard/create-complex'
| '/onboard/verify'
| '/onboard/verify-email'
| '/onboard/'
| '/onboard/setup'
| '/$complexSlug/booking/'
| '/_app/_authenticated/'
| '/$complexSlug/booking/confirmed/$bookingCode'
@@ -325,39 +279,11 @@ 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-email': {
id: '/onboard/verify-email'
path: '/verify-email'
fullPath: '/onboard/verify-email'
preLoaderRoute: typeof OnboardVerifyEmailRouteImport
parentRoute: typeof OnboardRoute
}
'/onboard/verify': {
id: '/onboard/verify'
path: '/verify'
fullPath: '/onboard/verify'
preLoaderRoute: typeof OnboardVerifyRouteImport
parentRoute: typeof OnboardRoute
}
'/onboard/create-complex': {
id: '/onboard/create-complex'
path: '/create-complex'
fullPath: '/onboard/create-complex'
preLoaderRoute: typeof OnboardCreateComplexRouteImport
parentRoute: typeof OnboardRoute
}
'/onboard/complete': {
id: '/onboard/complete'
path: '/complete'
fullPath: '/onboard/complete'
preLoaderRoute: typeof OnboardCompleteRouteImport
'/onboard/setup': {
id: '/onboard/setup'
path: '/setup'
fullPath: '/onboard/setup'
preLoaderRoute: typeof OnboardSetupRouteImport
parentRoute: typeof OnboardRoute
}
'/_app/profile': {
@@ -442,19 +368,11 @@ const AppRouteRouteWithChildren = AppRouteRoute._addFileChildren(
)
interface OnboardRouteChildren {
OnboardCompleteRoute: typeof OnboardCompleteRoute
OnboardCreateComplexRoute: typeof OnboardCreateComplexRoute
OnboardVerifyRoute: typeof OnboardVerifyRoute
OnboardVerifyEmailRoute: typeof OnboardVerifyEmailRoute
OnboardIndexRoute: typeof OnboardIndexRoute
OnboardSetupRoute: typeof OnboardSetupRoute
}
const OnboardRouteChildren: OnboardRouteChildren = {
OnboardCompleteRoute: OnboardCompleteRoute,
OnboardCreateComplexRoute: OnboardCreateComplexRoute,
OnboardVerifyRoute: OnboardVerifyRoute,
OnboardVerifyEmailRoute: OnboardVerifyEmailRoute,
OnboardIndexRoute: OnboardIndexRoute,
OnboardSetupRoute: OnboardSetupRoute,
}
const OnboardRouteWithChildren =