import { createRootRoute, createRoute, createRouter, redirect, } from '@tanstack/react-router' import { AppShell } from '@/components/layout/AppShell' import { LoginPage } from '@/pages/LoginPage' import { RegisterPage } from '@/pages/RegisterPage' import { GardensPage } from '@/pages/GardensPage' import { GardenEditorPage } from '@/pages/GardenEditorPage' import { PlantsPage } from '@/pages/PlantsPage' const rootRoute = createRootRoute({ component: AppShell }) // The root path has no page of its own yet; send it to the gardens list. A real // auth-aware landing/redirect lands with the route guard in issue #6. const indexRoute = createRoute({ getParentRoute: () => rootRoute, path: '/', beforeLoad: () => { throw redirect({ to: '/gardens' }) }, }) const loginRoute = createRoute({ getParentRoute: () => rootRoute, path: 'login', component: LoginPage }) const registerRoute = createRoute({ getParentRoute: () => rootRoute, path: 'register', component: RegisterPage }) const gardensRoute = createRoute({ getParentRoute: () => rootRoute, path: 'gardens', component: GardensPage }) const gardenEditorRoute = createRoute({ getParentRoute: () => rootRoute, path: 'gardens/$gardenId', component: GardenEditorPage, }) const plantsRoute = createRoute({ getParentRoute: () => rootRoute, path: 'plants', component: PlantsPage }) const routeTree = rootRoute.addChildren([ indexRoute, loginRoute, registerRoute, gardensRoute, gardenEditorRoute, plantsRoute, ]) export const router = createRouter({ routeTree, defaultPreload: 'intent', }) declare module '@tanstack/react-router' { interface Register { router: typeof router } }