I am using a react-hook-form use zod as a resolver. It has a action attribute to points to a function (RegisterAccount) that runs on the server and parses the form values and returns a Promise<ZodError>.
const form = useForm<z.infer<typeof registerFormSchema>>({
resolver: zodResolver(registerFormSchema),
defaultValues: {
// ...
}
})
<form action={RegisterAccount}>
// ...
</form>
Normally I'm pretty sure I'm supposed to do something like onSubmit={form.handleSubmit(onSubmit)} but when I add that, RegisterAccount does not get called at all.
I'm also trying to use the ZodError that is returned from the server and somehow injecting that ZodError into the form. But I have no idea how to start on that.
Try to write a client action that validates the data then calls the server action
Note: some of react-hook-form (like isSubmiting, isSubmited, etc...) won't work with this approach
See this issue: https://github.com/react-hook-form/react-hook-form/issues/10391
Or you can remove the action prop and call the server action directly within onSubmit callback