diff --git a/apps/infoalloggi/package.json b/apps/infoalloggi/package.json index 8fa664f..7834764 100644 --- a/apps/infoalloggi/package.json +++ b/apps/infoalloggi/package.json @@ -139,6 +139,7 @@ "prettier": "^3.6.2", "prettier-plugin-classnames": "^0.8.2", "prettier-plugin-tailwindcss": "^0.6.14", + "trpc-ui": "https://gitpkg.vercel.app/jrhe/trpc-ui/packages/trpc-ui?feature/zod-v4-support&scripts.postinstall=%26%26%20npm%20install%20pnpm%20%26%26%20npm%20install%20--ignore-scripts%20%26%26%20npm%20run%20build", "typescript": "^5.9.2", "typescript-eslint": "^8.39.0" }, diff --git a/apps/infoalloggi/src/components/custom_ui/form.tsx b/apps/infoalloggi/src/components/custom_ui/form.tsx index 978936f..41a9aca 100644 --- a/apps/infoalloggi/src/components/custom_ui/form.tsx +++ b/apps/infoalloggi/src/components/custom_ui/form.tsx @@ -12,6 +12,7 @@ import { import { cn } from "src/lib/utils"; import { Label } from "src/components/ui/label"; +import { env } from "~/env.mjs"; const Form = FormProvider; @@ -171,6 +172,23 @@ const FormMessage = React.forwardRef< }); FormMessage.displayName = "FormMessage"; +const FormDebug = React.forwardRef< + React.ElementType, + React.HTMLAttributes +>(async () => { + if (env.NODE_ENV !== "development") { + return null; + } + const { control, formState } = useFormContext(); + const devtools = await import("@hookform/devtools"); + + if (Object.keys(formState.errors).length > 0) { + console.error("errors", formState.errors); + } + return ; +}); +FormDebug.displayName = "FormDebug"; + export { useFormField, Form, @@ -180,4 +198,5 @@ export { FormDescription, FormMessage, FormField, + FormDebug, }; diff --git a/apps/infoalloggi/src/pages/api/panel.ts b/apps/infoalloggi/src/pages/api/panel.ts index 639d395..ea547c7 100644 --- a/apps/infoalloggi/src/pages/api/panel.ts +++ b/apps/infoalloggi/src/pages/api/panel.ts @@ -1,19 +1,17 @@ import type { NextApiRequest, NextApiResponse } from "next"; -// import { renderTrpcPanel } from "trpc-ui"; -// import { env } from "~/env.mjs"; -// import { appRouter } from "~/server/api/root"; +import { appRouter } from "~/server/api/root"; +import { env } from "~/env.mjs"; -// export default async function handler(_: NextApiRequest, res: NextApiResponse) { -// if (!env.NEXT_PUBLIC_BASE_URL.includes("localhost")) { -// return res.status(404).send("Not Found"); -// } -// res.status(200).send( -// renderTrpcPanel(appRouter, { -// url: `${env.NEXT_PUBLIC_BASE_URL}/api/trpc`, -// transformer: "superjson", -// }), -// ); -// } export default async function handler(_: NextApiRequest, res: NextApiResponse) { - res.status(404).send("Not Found"); + if (env.NODE_ENV !== "development") { + return res.status(404).send("Not Found"); + } + + const { renderTrpcPanel } = await import("trpc-ui"); + res.status(200).send( + renderTrpcPanel(appRouter, { + url: "/api/trpc", + transformer: "superjson", + }), + ); }