From 17c6565942229e24fa288029305d505b6c230b74 Mon Sep 17 00:00:00 2001 From: Beier Luo Date: Wed, 27 Mar 2024 07:59:58 +1100 Subject: [PATCH] fix #11719 validation stuck on true state --- src/logic/createFormControl.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/logic/createFormControl.ts b/src/logic/createFormControl.ts index e253e8faad5..4528dbe39c1 100644 --- a/src/logic/createFormControl.ts +++ b/src/logic/createFormControl.ts @@ -179,16 +179,17 @@ export function createFormControl< const _updateIsValidating = (names?: string[], isValidating?: boolean) => { if (_proxyFormState.isValidating || _proxyFormState.validatingFields) { - (names || Array.from(_names.mount)).forEach( - (name) => - name && set(_formState.validatingFields, name, !!isValidating), - ); - _formState.isValidating = Object.values(_formState.validatingFields).some( - (val) => val, - ); + (names || Array.from(_names.mount)).forEach((name) => { + if (name) { + isValidating + ? set(_formState.validatingFields, name, isValidating) + : unset(_formState.validatingFields, name); + } + }); + _subjects.state.next({ validatingFields: _formState.validatingFields, - isValidating: _formState.isValidating, + isValidating: !isEmptyObject(_formState.validatingFields), }); } };