import { z } from "zod"; import { useForm as useHookForm, FieldValues } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { useEffect } from "react"; export const useForm = ( schema: z.ZodSchema, initialValues?: Partial ) => { const form = useHookForm({ resolver: zodResolver(schema), defaultValues: initialValues as never, }); useEffect(() => { if (initialValues) { form.reset(initialValues as never); } }, [initialValues, form.reset]); return form; }; export type useFormReturn = ReturnType< typeof useForm >;