Skip to content

Instantly share code, notes, and snippets.

@danieljpgo
Created January 7, 2023 20:42
Show Gist options
  • Save danieljpgo/61e5973910c9e2df11a76f52b4869d10 to your computer and use it in GitHub Desktop.
Save danieljpgo/61e5973910c9e2df11a76f52b4869d10 to your computer and use it in GitHub Desktop.
react-hook-form + zod
import {
useForm as useHookForm,
UseFormProps as useHookFormProps,
} from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import { TypeOf, ZodSchema } from "zod";
interface UseFormProps<Z extends ZodSchema>
extends Exclude<useHookFormProps<TypeOf<Z>>, "resolver"> {
schema: Z;
}
export function useForm<Z extends ZodSchema>({
schema,
...props
}: UseFormProps<Z>) {
return useHookForm({ ...props, resolver: zodResolver(schema) });
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment