react-hook-form 7.55.0-next.4 → 7.55.0-next.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -4
- package/dist/controller.d.ts.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.mjs +12 -8
- package/dist/index.esm.mjs.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/dist/logic/appendErrors.d.ts.map +1 -1
- package/dist/logic/createFormControl.d.ts.map +1 -1
- package/dist/logic/generateWatchOutput.d.ts.map +1 -1
- package/dist/logic/getCheckboxValue.d.ts.map +1 -1
- package/dist/logic/getDirtyFields.d.ts.map +1 -1
- package/dist/logic/getEventValue.d.ts.map +1 -1
- package/dist/logic/getFieldValueAs.d.ts.map +1 -1
- package/dist/logic/getFocusFieldName.d.ts.map +1 -1
- package/dist/logic/getNodeParentName.d.ts.map +1 -1
- package/dist/logic/getProxyFormState.d.ts.map +1 -1
- package/dist/logic/getRadioValue.d.ts.map +1 -1
- package/dist/logic/getResolverOptions.d.ts.map +1 -1
- package/dist/logic/getRuleValue.d.ts.map +1 -1
- package/dist/logic/getValidationModes.d.ts.map +1 -1
- package/dist/logic/getValueAndMessage.d.ts.map +1 -1
- package/dist/logic/hasPromiseValidation.d.ts.map +1 -1
- package/dist/logic/hasValidation.d.ts.map +1 -1
- package/dist/logic/isNameInFieldArray.d.ts.map +1 -1
- package/dist/logic/isWatched.d.ts.map +1 -1
- package/dist/logic/iterateFieldsByAction.d.ts.map +1 -1
- package/dist/logic/shouldRenderFormState.d.ts.map +1 -1
- package/dist/logic/shouldSubscribeByName.d.ts.map +1 -1
- package/dist/logic/skipValidation.d.ts.map +1 -1
- package/dist/logic/unsetEmptyArray.d.ts.map +1 -1
- package/dist/logic/updateFieldArrayRootError.d.ts.map +1 -1
- package/dist/logic/validateField.d.ts.map +1 -1
- package/dist/react-server.esm.mjs +8 -7
- package/dist/react-server.esm.mjs.map +1 -1
- package/dist/types/form.d.ts +3 -3
- package/dist/types/form.d.ts.map +1 -1
- package/dist/useFieldArray.d.ts.map +1 -1
- package/dist/useForm.d.ts.map +1 -1
- package/dist/useFormContext.d.ts.map +1 -1
- package/dist/utils/append.d.ts.map +1 -1
- package/dist/utils/compact.d.ts.map +1 -1
- package/dist/utils/convertToArrayPayload.d.ts.map +1 -1
- package/dist/utils/fillEmptyArray.d.ts.map +1 -1
- package/dist/utils/flatten.d.ts.map +1 -1
- package/dist/utils/get.d.ts.map +1 -1
- package/dist/utils/isBoolean.d.ts.map +1 -1
- package/dist/utils/isCheckBoxInput.d.ts.map +1 -1
- package/dist/utils/isDateObject.d.ts.map +1 -1
- package/dist/utils/isEmptyObject.d.ts.map +1 -1
- package/dist/utils/isFileInput.d.ts.map +1 -1
- package/dist/utils/isFunction.d.ts.map +1 -1
- package/dist/utils/isHTMLElement.d.ts.map +1 -1
- package/dist/utils/isKey.d.ts.map +1 -1
- package/dist/utils/isMessage.d.ts.map +1 -1
- package/dist/utils/isMultipleSelect.d.ts.map +1 -1
- package/dist/utils/isNullOrUndefined.d.ts.map +1 -1
- package/dist/utils/isObject.d.ts.map +1 -1
- package/dist/utils/isPlainObject.d.ts.map +1 -1
- package/dist/utils/isPrimitive.d.ts.map +1 -1
- package/dist/utils/isRadioInput.d.ts.map +1 -1
- package/dist/utils/isRadioOrCheckbox.d.ts.map +1 -1
- package/dist/utils/isRegex.d.ts.map +1 -1
- package/dist/utils/isString.d.ts.map +1 -1
- package/dist/utils/isUndefined.d.ts.map +1 -1
- package/dist/utils/live.d.ts.map +1 -1
- package/dist/utils/move.d.ts.map +1 -1
- package/dist/utils/objectHasFunction.d.ts.map +1 -1
- package/dist/utils/omit.d.ts.map +1 -1
- package/dist/utils/prepend.d.ts.map +1 -1
- package/dist/utils/remove.d.ts.map +1 -1
- package/dist/utils/set.d.ts.map +1 -1
- package/dist/utils/sleep.d.ts.map +1 -1
- package/dist/utils/stringToPath.d.ts.map +1 -1
- package/dist/utils/swap.d.ts.map +1 -1
- package/dist/utils/update.d.ts.map +1 -1
- package/package.json +13 -13
package/dist/index.esm.mjs
CHANGED
@@ -1270,7 +1270,7 @@ function createFormControl(props = {}) {
|
|
1270
1270
|
};
|
1271
1271
|
let _fields = {};
|
1272
1272
|
let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)
|
1273
|
-
? cloneObject(_options.
|
1273
|
+
? cloneObject(_options.values || _options.defaultValues) || {}
|
1274
1274
|
: {};
|
1275
1275
|
let _formValues = _options.shouldUnregister
|
1276
1276
|
? {}
|
@@ -1696,8 +1696,10 @@ function createFormControl(props = {}) {
|
|
1696
1696
|
});
|
1697
1697
|
if (shouldSkipValidation) {
|
1698
1698
|
if (_proxyFormState.isValid || _proxySubscribeFormState.isValid) {
|
1699
|
-
if (_options.mode === 'onBlur'
|
1700
|
-
|
1699
|
+
if (_options.mode === 'onBlur') {
|
1700
|
+
if (isBlurEvent) {
|
1701
|
+
_setValid();
|
1702
|
+
}
|
1701
1703
|
}
|
1702
1704
|
else if (!isBlurEvent) {
|
1703
1705
|
_setValid();
|
@@ -1992,7 +1994,8 @@ function createFormControl(props = {}) {
|
|
1992
1994
|
let onValidError = undefined;
|
1993
1995
|
if (e) {
|
1994
1996
|
e.preventDefault && e.preventDefault();
|
1995
|
-
e.persist &&
|
1997
|
+
e.persist &&
|
1998
|
+
e.persist();
|
1996
1999
|
}
|
1997
2000
|
let fieldValues = cloneObject(_formValues);
|
1998
2001
|
_subjects.state.next({
|
@@ -2498,7 +2501,8 @@ function useFieldArray(props) {
|
|
2498
2501
|
});
|
2499
2502
|
if (_actioned.current &&
|
2500
2503
|
(!getValidationModes(control._options.mode).isOnSubmit ||
|
2501
|
-
control._formState.isSubmitted)
|
2504
|
+
control._formState.isSubmitted) &&
|
2505
|
+
!getValidationModes(control._options.reValidateMode).isOnSubmit) {
|
2502
2506
|
if (control._options.resolver) {
|
2503
2507
|
control._runSchema([name]).then((result) => {
|
2504
2508
|
const error = get(result.errors, name);
|
@@ -2603,7 +2607,7 @@ function useFieldArray(props) {
|
|
2603
2607
|
*/
|
2604
2608
|
function useForm(props = {}) {
|
2605
2609
|
const _formControl = React.useRef(undefined);
|
2606
|
-
const _values = React.useRef(
|
2610
|
+
const _values = React.useRef(props.values);
|
2607
2611
|
const [formState, updateFormState] = React.useState({
|
2608
2612
|
isDirty: false,
|
2609
2613
|
isValidating: false,
|
@@ -2630,7 +2634,7 @@ function useForm(props = {}) {
|
|
2630
2634
|
}
|
2631
2635
|
const control = _formControl.current.control;
|
2632
2636
|
control._options = props;
|
2633
|
-
React.
|
2637
|
+
React.useLayoutEffect(() => control._subscribe({
|
2634
2638
|
formState: control._proxyFormState,
|
2635
2639
|
callback: () => updateFormState({ ...control._formState }),
|
2636
2640
|
reRenderRoot: true,
|
@@ -2657,7 +2661,7 @@ function useForm(props = {}) {
|
|
2657
2661
|
}
|
2658
2662
|
}, [props.values, control]);
|
2659
2663
|
React.useEffect(() => {
|
2660
|
-
if (props.errors) {
|
2664
|
+
if (props.errors && !isEmptyObject(props.errors)) {
|
2661
2665
|
control._setErrors(props.errors);
|
2662
2666
|
}
|
2663
2667
|
}, [props.errors, control]);
|