diff --git a/reports/api-extractor.md b/reports/api-extractor.md index 79d67c9e15c..6dd4e7c44e0 100644 --- a/reports/api-extractor.md +++ b/reports/api-extractor.md @@ -104,8 +104,8 @@ export type ControllerProps = FieldPath> = { - onChange: (...event: any[]) => void; - onBlur: Noop; + onChange: (...event: any[]) => Promise; + onBlur: () => Promise; value: FieldPathValue; disabled?: boolean; name: TName; diff --git a/src/types/controller.ts b/src/types/controller.ts index e8b96996ac7..e2b483bd2a4 100644 --- a/src/types/controller.ts +++ b/src/types/controller.ts @@ -7,7 +7,6 @@ import { FieldPath, FieldPathValue, FieldValues, - Noop, RefCallBack, UseFormStateReturn, } from './'; @@ -23,8 +22,8 @@ export type ControllerRenderProps< TFieldValues extends FieldValues = FieldValues, TName extends FieldPath = FieldPath, > = { - onChange: (...event: any[]) => void; - onBlur: Noop; + onChange: (...event: any[]) => Promise; + onBlur: () => Promise; value: FieldPathValue; disabled?: boolean; name: TName; diff --git a/src/useController.ts b/src/useController.ts index 08a3bc629a9..f61c929bf3d 100644 --- a/src/useController.ts +++ b/src/useController.ts @@ -131,7 +131,7 @@ export function useController< ? { disabled: formState.disabled || disabled } : {}), onChange: React.useCallback( - (event) => + async (event) => _registerProps.current.onChange({ target: { value: getEventValue(event), @@ -142,7 +142,7 @@ export function useController< [name], ), onBlur: React.useCallback( - () => + async () => _registerProps.current.onBlur({ target: { value: get(control._formValues, name),