react-hook-form 7.57.0 → 7.58.0

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 (119) hide show
  1. package/dist/__typetest__/form.test-d.d.ts +1 -1
  2. package/dist/__typetest__/form.test-d.d.ts.map +1 -1
  3. package/dist/controller.d.ts +1 -1
  4. package/dist/controller.d.ts.map +1 -1
  5. package/dist/form.d.ts +1 -1
  6. package/dist/form.d.ts.map +1 -1
  7. package/dist/index.cjs.js +1 -1
  8. package/dist/index.cjs.js.map +1 -1
  9. package/dist/index.esm.mjs +26 -15
  10. package/dist/index.esm.mjs.map +1 -1
  11. package/dist/index.umd.js +1 -1
  12. package/dist/index.umd.js.map +1 -1
  13. package/dist/logic/appendErrors.d.ts +1 -1
  14. package/dist/logic/appendErrors.d.ts.map +1 -1
  15. package/dist/logic/createFormControl.d.ts +1 -1
  16. package/dist/logic/createFormControl.d.ts.map +1 -1
  17. package/dist/logic/generateId.d.ts.map +1 -1
  18. package/dist/logic/generateWatchOutput.d.ts +1 -1
  19. package/dist/logic/generateWatchOutput.d.ts.map +1 -1
  20. package/dist/logic/getFieldValue.d.ts +1 -1
  21. package/dist/logic/getFieldValue.d.ts.map +1 -1
  22. package/dist/logic/getFieldValueAs.d.ts +1 -1
  23. package/dist/logic/getFieldValueAs.d.ts.map +1 -1
  24. package/dist/logic/getFocusFieldName.d.ts +1 -1
  25. package/dist/logic/getFocusFieldName.d.ts.map +1 -1
  26. package/dist/logic/getProxyFormState.d.ts +1 -1
  27. package/dist/logic/getProxyFormState.d.ts.map +1 -1
  28. package/dist/logic/getResolverOptions.d.ts +1 -1
  29. package/dist/logic/getResolverOptions.d.ts.map +1 -1
  30. package/dist/logic/getRuleValue.d.ts +1 -1
  31. package/dist/logic/getRuleValue.d.ts.map +1 -1
  32. package/dist/logic/getValidateError.d.ts +1 -1
  33. package/dist/logic/getValidateError.d.ts.map +1 -1
  34. package/dist/logic/getValidationModes.d.ts +1 -1
  35. package/dist/logic/getValidationModes.d.ts.map +1 -1
  36. package/dist/logic/getValueAndMessage.d.ts +1 -1
  37. package/dist/logic/getValueAndMessage.d.ts.map +1 -1
  38. package/dist/logic/hasPromiseValidation.d.ts +1 -1
  39. package/dist/logic/hasPromiseValidation.d.ts.map +1 -1
  40. package/dist/logic/hasValidation.d.ts +1 -1
  41. package/dist/logic/hasValidation.d.ts.map +1 -1
  42. package/dist/logic/isNameInFieldArray.d.ts +1 -1
  43. package/dist/logic/isNameInFieldArray.d.ts.map +1 -1
  44. package/dist/logic/isWatched.d.ts +1 -1
  45. package/dist/logic/isWatched.d.ts.map +1 -1
  46. package/dist/logic/iterateFieldsByAction.d.ts +1 -1
  47. package/dist/logic/iterateFieldsByAction.d.ts.map +1 -1
  48. package/dist/logic/schemaErrorLookup.d.ts +1 -1
  49. package/dist/logic/schemaErrorLookup.d.ts.map +1 -1
  50. package/dist/logic/shouldRenderFormState.d.ts +1 -1
  51. package/dist/logic/shouldRenderFormState.d.ts.map +1 -1
  52. package/dist/logic/skipValidation.d.ts +1 -1
  53. package/dist/logic/skipValidation.d.ts.map +1 -1
  54. package/dist/logic/updateFieldArrayRootError.d.ts +1 -1
  55. package/dist/logic/updateFieldArrayRootError.d.ts.map +1 -1
  56. package/dist/logic/validateField.d.ts +1 -1
  57. package/dist/logic/validateField.d.ts.map +1 -1
  58. package/dist/react-server.esm.mjs +5 -5
  59. package/dist/react-server.esm.mjs.map +1 -1
  60. package/dist/types/controller.d.ts +3 -3
  61. package/dist/types/controller.d.ts.map +1 -1
  62. package/dist/types/errors.d.ts +3 -3
  63. package/dist/types/errors.d.ts.map +1 -1
  64. package/dist/types/fieldArray.d.ts +4 -4
  65. package/dist/types/fieldArray.d.ts.map +1 -1
  66. package/dist/types/fields.d.ts +2 -2
  67. package/dist/types/fields.d.ts.map +1 -1
  68. package/dist/types/form.d.ts +11 -11
  69. package/dist/types/form.d.ts.map +1 -1
  70. package/dist/types/path/common.d.ts +1 -1
  71. package/dist/types/path/common.d.ts.map +1 -1
  72. package/dist/types/path/eager.d.ts +16 -3
  73. package/dist/types/path/eager.d.ts.map +1 -1
  74. package/dist/types/path/index.d.ts +1 -1
  75. package/dist/types/path/index.d.ts.map +1 -1
  76. package/dist/types/resolvers.d.ts +3 -3
  77. package/dist/types/resolvers.d.ts.map +1 -1
  78. package/dist/types/utils.d.ts +1 -1
  79. package/dist/types/utils.d.ts.map +1 -1
  80. package/dist/types/validator.d.ts +4 -4
  81. package/dist/types/validator.d.ts.map +1 -1
  82. package/dist/useController.d.ts +1 -1
  83. package/dist/useController.d.ts.map +1 -1
  84. package/dist/useFieldArray.d.ts +1 -1
  85. package/dist/useFieldArray.d.ts.map +1 -1
  86. package/dist/useForm.d.ts +1 -1
  87. package/dist/useForm.d.ts.map +1 -1
  88. package/dist/useFormContext.d.ts +1 -1
  89. package/dist/useFormContext.d.ts.map +1 -1
  90. package/dist/useFormState.d.ts +1 -1
  91. package/dist/useFormState.d.ts.map +1 -1
  92. package/dist/useWatch.d.ts +1 -1
  93. package/dist/useWatch.d.ts.map +1 -1
  94. package/dist/utils/createSubject.d.ts +1 -1
  95. package/dist/utils/createSubject.d.ts.map +1 -1
  96. package/dist/utils/flatten.d.ts +1 -1
  97. package/dist/utils/flatten.d.ts.map +1 -1
  98. package/dist/utils/get.d.ts.map +1 -1
  99. package/dist/utils/isCheckBoxInput.d.ts +1 -1
  100. package/dist/utils/isCheckBoxInput.d.ts.map +1 -1
  101. package/dist/utils/isEmptyObject.d.ts +1 -1
  102. package/dist/utils/isEmptyObject.d.ts.map +1 -1
  103. package/dist/utils/isFileInput.d.ts +1 -1
  104. package/dist/utils/isFileInput.d.ts.map +1 -1
  105. package/dist/utils/isMessage.d.ts +1 -1
  106. package/dist/utils/isMessage.d.ts.map +1 -1
  107. package/dist/utils/isMultipleSelect.d.ts +1 -1
  108. package/dist/utils/isMultipleSelect.d.ts.map +1 -1
  109. package/dist/utils/isPrimitive.d.ts +1 -1
  110. package/dist/utils/isPrimitive.d.ts.map +1 -1
  111. package/dist/utils/isRadioInput.d.ts +1 -1
  112. package/dist/utils/isRadioInput.d.ts.map +1 -1
  113. package/dist/utils/isRadioOrCheckbox.d.ts +1 -1
  114. package/dist/utils/isRadioOrCheckbox.d.ts.map +1 -1
  115. package/dist/utils/live.d.ts +1 -1
  116. package/dist/utils/live.d.ts.map +1 -1
  117. package/dist/utils/set.d.ts +1 -1
  118. package/dist/utils/set.d.ts.map +1 -1
  119. package/package.json +13 -13
@@ -62,15 +62,19 @@ function cloneObject(data) {
62
62
  return copy;
63
63
  }
64
64
 
65
- var compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];
65
+ var isKey = (value) => /^\w*$/.test(value);
66
66
 
67
67
  var isUndefined = (val) => val === undefined;
68
68
 
69
+ var compact = (value) => Array.isArray(value) ? value.filter(Boolean) : [];
70
+
71
+ var stringToPath = (input) => compact(input.replace(/["|']|\]/g, '').split(/\.|\[/));
72
+
69
73
  var get = (object, path, defaultValue) => {
70
74
  if (!path || !isObject(object)) {
71
75
  return defaultValue;
72
76
  }
73
- const result = compact(path.split(/[,[\].]+?/)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);
77
+ const result = (isKey(path) ? [path] : stringToPath(path)).reduce((result, key) => isNullOrUndefined(result) ? result : result[key], object);
74
78
  return isUndefined(result) || result === object
75
79
  ? isUndefined(object[path])
76
80
  ? defaultValue
@@ -80,10 +84,6 @@ var get = (object, path, defaultValue) => {
80
84
 
81
85
  var isBoolean = (value) => typeof value === 'boolean';
82
86
 
83
- var isKey = (value) => /^\w*$/.test(value);
84
-
85
- var stringToPath = (input) => compact(input.replace(/["|']|\]/g, '').split(/\.|\[/));
86
-
87
87
  var set = (object, path, value) => {
88
88
  let index = -1;
89
89
  const tempPath = isKey(path) ? [path] : stringToPath(path);
@@ -132,6 +132,7 @@ const INPUT_VALIDATION_RULES = {
132
132
  };
133
133
 
134
134
  const HookFormContext = React__default.createContext(null);
135
+ HookFormContext.displayName = 'HookFormContext';
135
136
  /**
136
137
  * This custom hook allows you to access the form context. useFormContext is intended to be used in deeply nested structures, where it would become inconvenient to pass the context as a prop. To be used with {@link FormProvider}.
137
138
  *
@@ -2290,6 +2291,9 @@ function createFormControl(props = {}) {
2290
2291
  }
2291
2292
 
2292
2293
  var generateId = () => {
2294
+ if (!isUndefined(crypto) && crypto.randomUUID) {
2295
+ return crypto.randomUUID();
2296
+ }
2293
2297
  const d = typeof performance === 'undefined' ? Date.now() : performance.now() * 1000;
2294
2298
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
2295
2299
  const r = (Math.random() * 16 + d) % 16 | 0;
@@ -2405,7 +2409,7 @@ function useFieldArray(props) {
2405
2409
  control._names.array.add(name);
2406
2410
  rules &&
2407
2411
  control.register(name, rules);
2408
- React__default.useEffect(() => control._subjects.array.subscribe({
2412
+ useIsomorphicLayoutEffect(() => control._subjects.array.subscribe({
2409
2413
  next: ({ values, name: fieldArrayName, }) => {
2410
2414
  if (fieldArrayName === _name.current || !fieldArrayName) {
2411
2415
  const fieldValues = get(values, _name.current);
@@ -2647,14 +2651,21 @@ function useForm(props = {}) {
2647
2651
  : props.defaultValues,
2648
2652
  });
2649
2653
  if (!_formControl.current) {
2650
- _formControl.current = {
2651
- ...(props.formControl ? props.formControl : createFormControl(props)),
2652
- formState,
2653
- };
2654
- if (props.formControl &&
2655
- props.defaultValues &&
2656
- !isFunction(props.defaultValues)) {
2657
- props.formControl.reset(props.defaultValues, props.resetOptions);
2654
+ if (props.formControl) {
2655
+ _formControl.current = {
2656
+ ...props.formControl,
2657
+ formState,
2658
+ };
2659
+ if (props.defaultValues && !isFunction(props.defaultValues)) {
2660
+ props.formControl.reset(props.defaultValues, props.resetOptions);
2661
+ }
2662
+ }
2663
+ else {
2664
+ const { formControl, ...rest } = createFormControl(props);
2665
+ _formControl.current = {
2666
+ ...rest,
2667
+ formState,
2668
+ };
2658
2669
  }
2659
2670
  }
2660
2671
  const control = _formControl.current.control;