import { z } from "zod" import { badRequestError } from "@/server/errors/trpc" import { getBreadcrumbsSchema } from "./output" import { publicProcedure, router } from "@/server/trpc" const rootMyPagesBreadcrumb = { href: "/en/my-pages", title: "My Pages", } enum paths { "/my-pages", "/my-pages/benefits", "/my-pages/overview", "/my-pages/profile", } const keys = Object.keys(paths) as [keyof typeof paths] const possibleBreadcrumbs: Record = { "/my-pages": [ { title: rootMyPagesBreadcrumb.title, }, ], "/my-pages/benefits": [rootMyPagesBreadcrumb, { title: "Benefits" }], "/my-pages/overview": [rootMyPagesBreadcrumb, { title: "Overview" }], "/my-pages/profile": [rootMyPagesBreadcrumb, { title: "Profile" }], } export const breadcrumbsQueryRouter = router({ get: publicProcedure.input(z.object({ href: z.enum(keys) })).query((opts) => { const breadcrumbs = possibleBreadcrumbs[opts.input.href] const validatedBreadcrumbs = getBreadcrumbsSchema.safeParse(breadcrumbs) if (validatedBreadcrumbs.success) { return breadcrumbs } throw badRequestError() }), })