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.
Files changed (78) hide show
  1. package/README.md +12 -4
  2. package/dist/controller.d.ts.map +1 -1
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.cjs.js.map +1 -1
  5. package/dist/index.esm.mjs +12 -8
  6. package/dist/index.esm.mjs.map +1 -1
  7. package/dist/index.umd.js +1 -1
  8. package/dist/index.umd.js.map +1 -1
  9. package/dist/logic/appendErrors.d.ts.map +1 -1
  10. package/dist/logic/createFormControl.d.ts.map +1 -1
  11. package/dist/logic/generateWatchOutput.d.ts.map +1 -1
  12. package/dist/logic/getCheckboxValue.d.ts.map +1 -1
  13. package/dist/logic/getDirtyFields.d.ts.map +1 -1
  14. package/dist/logic/getEventValue.d.ts.map +1 -1
  15. package/dist/logic/getFieldValueAs.d.ts.map +1 -1
  16. package/dist/logic/getFocusFieldName.d.ts.map +1 -1
  17. package/dist/logic/getNodeParentName.d.ts.map +1 -1
  18. package/dist/logic/getProxyFormState.d.ts.map +1 -1
  19. package/dist/logic/getRadioValue.d.ts.map +1 -1
  20. package/dist/logic/getResolverOptions.d.ts.map +1 -1
  21. package/dist/logic/getRuleValue.d.ts.map +1 -1
  22. package/dist/logic/getValidationModes.d.ts.map +1 -1
  23. package/dist/logic/getValueAndMessage.d.ts.map +1 -1
  24. package/dist/logic/hasPromiseValidation.d.ts.map +1 -1
  25. package/dist/logic/hasValidation.d.ts.map +1 -1
  26. package/dist/logic/isNameInFieldArray.d.ts.map +1 -1
  27. package/dist/logic/isWatched.d.ts.map +1 -1
  28. package/dist/logic/iterateFieldsByAction.d.ts.map +1 -1
  29. package/dist/logic/shouldRenderFormState.d.ts.map +1 -1
  30. package/dist/logic/shouldSubscribeByName.d.ts.map +1 -1
  31. package/dist/logic/skipValidation.d.ts.map +1 -1
  32. package/dist/logic/unsetEmptyArray.d.ts.map +1 -1
  33. package/dist/logic/updateFieldArrayRootError.d.ts.map +1 -1
  34. package/dist/logic/validateField.d.ts.map +1 -1
  35. package/dist/react-server.esm.mjs +8 -7
  36. package/dist/react-server.esm.mjs.map +1 -1
  37. package/dist/types/form.d.ts +3 -3
  38. package/dist/types/form.d.ts.map +1 -1
  39. package/dist/useFieldArray.d.ts.map +1 -1
  40. package/dist/useForm.d.ts.map +1 -1
  41. package/dist/useFormContext.d.ts.map +1 -1
  42. package/dist/utils/append.d.ts.map +1 -1
  43. package/dist/utils/compact.d.ts.map +1 -1
  44. package/dist/utils/convertToArrayPayload.d.ts.map +1 -1
  45. package/dist/utils/fillEmptyArray.d.ts.map +1 -1
  46. package/dist/utils/flatten.d.ts.map +1 -1
  47. package/dist/utils/get.d.ts.map +1 -1
  48. package/dist/utils/isBoolean.d.ts.map +1 -1
  49. package/dist/utils/isCheckBoxInput.d.ts.map +1 -1
  50. package/dist/utils/isDateObject.d.ts.map +1 -1
  51. package/dist/utils/isEmptyObject.d.ts.map +1 -1
  52. package/dist/utils/isFileInput.d.ts.map +1 -1
  53. package/dist/utils/isFunction.d.ts.map +1 -1
  54. package/dist/utils/isHTMLElement.d.ts.map +1 -1
  55. package/dist/utils/isKey.d.ts.map +1 -1
  56. package/dist/utils/isMessage.d.ts.map +1 -1
  57. package/dist/utils/isMultipleSelect.d.ts.map +1 -1
  58. package/dist/utils/isNullOrUndefined.d.ts.map +1 -1
  59. package/dist/utils/isObject.d.ts.map +1 -1
  60. package/dist/utils/isPlainObject.d.ts.map +1 -1
  61. package/dist/utils/isPrimitive.d.ts.map +1 -1
  62. package/dist/utils/isRadioInput.d.ts.map +1 -1
  63. package/dist/utils/isRadioOrCheckbox.d.ts.map +1 -1
  64. package/dist/utils/isRegex.d.ts.map +1 -1
  65. package/dist/utils/isString.d.ts.map +1 -1
  66. package/dist/utils/isUndefined.d.ts.map +1 -1
  67. package/dist/utils/live.d.ts.map +1 -1
  68. package/dist/utils/move.d.ts.map +1 -1
  69. package/dist/utils/objectHasFunction.d.ts.map +1 -1
  70. package/dist/utils/omit.d.ts.map +1 -1
  71. package/dist/utils/prepend.d.ts.map +1 -1
  72. package/dist/utils/remove.d.ts.map +1 -1
  73. package/dist/utils/set.d.ts.map +1 -1
  74. package/dist/utils/sleep.d.ts.map +1 -1
  75. package/dist/utils/stringToPath.d.ts.map +1 -1
  76. package/dist/utils/swap.d.ts.map +1 -1
  77. package/dist/utils/update.d.ts.map +1 -1
  78. package/package.json +13 -13
@@ -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.defaultValues || _options.values) || {}
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' && isBlurEvent) {
1700
- _setValid();
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 && 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(undefined);
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.useEffect(() => control._subscribe({
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]);