Files
zhixing-system/zhixing-web/src/routes/route-tree.tsx
T
2026-08-10 10:07:55 +08:00

40 lines
1.2 KiB
TypeScript

import { createRootRoute, createRoute, Outlet } from "@tanstack/react-router"
import { AppLayout } from "@/app/layout/app-layout"
import { HomePage } from "@/features/home/pages/home-page"
import { SelectionResultsPage } from "@/features/selection/pages/selection-results-page"
const rootRoute = createRootRoute({
component: () => <Outlet />,
})
const workspaceRoute = createRoute({
getParentRoute: () => rootRoute,
id: "_workspace",
component: AppLayout,
})
const indexRoute = createRoute({
getParentRoute: () => workspaceRoute,
path: "/",
component: HomePage,
})
const selectionRoute = createRoute({
getParentRoute: () => workspaceRoute,
path: "/selection",
validateSearch: (search: Record<string, unknown>) => {
const rawPage = Number(search.page)
const rawPageSize = Number(search.pageSize)
const page =
Number.isFinite(rawPage) && rawPage >= 1 ? Math.floor(rawPage) : 1
const pageSize = [5, 10, 20].includes(rawPageSize) ? rawPageSize : 10
return { page, pageSize }
},
component: SelectionResultsPage,
})
export const routeTree = rootRoute.addChildren([
workspaceRoute.addChildren([indexRoute, selectionRoute]),
])