import type { ZodSchema } from 'zod' type SubmitValidator = ({ value }: { value: T }) => { fields: Record } | undefined export const zodSubmitValidator = (schema: ZodSchema): SubmitValidator => { return ({ value }) => { const result = schema.safeParse(value) if (!result.success) { const fieldErrors: Record = {} for (const issue of result.error.issues) { const path = issue.path[0] if (path === undefined) continue const key = String(path) if (!fieldErrors[key]) fieldErrors[key] = issue.message } return { fields: fieldErrors } } return undefined } }