diff --git a/src/logic/createFormControl.ts b/src/logic/createFormControl.ts index 5bffd80957f..660ced84ced 100644 --- a/src/logic/createFormControl.ts +++ b/src/logic/createFormControl.ts @@ -1100,7 +1100,9 @@ export function createFormControl< _subjects.state.next({ errors: {}, }); - await onValid(fieldValues as TFieldValues, e); + if (onValid) { + await onValid(fieldValues as TFieldValues, e); + } } else { if (onInvalid) { await onInvalid({ ..._formState.errors }, e); diff --git a/src/types/form.ts b/src/types/form.ts index e0fd74ad328..12f376875c2 100644 --- a/src/types/form.ts +++ b/src/types/form.ts @@ -620,7 +620,7 @@ export type UseFormHandleSubmit< TFieldValues extends FieldValues, TTransformedValues extends FieldValues | undefined = undefined, > = ( - onValid: TTransformedValues extends FieldValues + onValid?: TTransformedValues extends FieldValues ? SubmitHandler : SubmitHandler, onInvalid?: SubmitErrorHandler,