react-hook-form 7.57.0 → 7.58.1
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/dist/__typetest__/form.test-d.d.ts +1 -1
- package/dist/__typetest__/form.test-d.d.ts.map +1 -1
- package/dist/controller.d.ts +1 -1
- package/dist/controller.d.ts.map +1 -1
- package/dist/form.d.ts +1 -1
- package/dist/form.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 +26 -15
- 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 +1 -1
- package/dist/logic/appendErrors.d.ts.map +1 -1
- package/dist/logic/createFormControl.d.ts +1 -1
- package/dist/logic/createFormControl.d.ts.map +1 -1
- package/dist/logic/generateId.d.ts.map +1 -1
- package/dist/logic/generateWatchOutput.d.ts +1 -1
- package/dist/logic/generateWatchOutput.d.ts.map +1 -1
- package/dist/logic/getFieldValue.d.ts +1 -1
- package/dist/logic/getFieldValue.d.ts.map +1 -1
- package/dist/logic/getFieldValueAs.d.ts +1 -1
- package/dist/logic/getFieldValueAs.d.ts.map +1 -1
- package/dist/logic/getFocusFieldName.d.ts +1 -1
- package/dist/logic/getFocusFieldName.d.ts.map +1 -1
- package/dist/logic/getProxyFormState.d.ts +1 -1
- package/dist/logic/getProxyFormState.d.ts.map +1 -1
- package/dist/logic/getResolverOptions.d.ts +1 -1
- package/dist/logic/getResolverOptions.d.ts.map +1 -1
- package/dist/logic/getRuleValue.d.ts +1 -1
- package/dist/logic/getRuleValue.d.ts.map +1 -1
- package/dist/logic/getValidateError.d.ts +1 -1
- package/dist/logic/getValidateError.d.ts.map +1 -1
- package/dist/logic/getValidationModes.d.ts +1 -1
- package/dist/logic/getValidationModes.d.ts.map +1 -1
- package/dist/logic/getValueAndMessage.d.ts +1 -1
- package/dist/logic/getValueAndMessage.d.ts.map +1 -1
- package/dist/logic/hasPromiseValidation.d.ts +1 -1
- package/dist/logic/hasPromiseValidation.d.ts.map +1 -1
- package/dist/logic/hasValidation.d.ts +1 -1
- package/dist/logic/hasValidation.d.ts.map +1 -1
- package/dist/logic/isNameInFieldArray.d.ts +1 -1
- package/dist/logic/isNameInFieldArray.d.ts.map +1 -1
- package/dist/logic/isWatched.d.ts +1 -1
- package/dist/logic/isWatched.d.ts.map +1 -1
- package/dist/logic/iterateFieldsByAction.d.ts +1 -1
- package/dist/logic/iterateFieldsByAction.d.ts.map +1 -1
- package/dist/logic/schemaErrorLookup.d.ts +1 -1
- package/dist/logic/schemaErrorLookup.d.ts.map +1 -1
- package/dist/logic/shouldRenderFormState.d.ts +1 -1
- package/dist/logic/shouldRenderFormState.d.ts.map +1 -1
- package/dist/logic/skipValidation.d.ts +1 -1
- package/dist/logic/skipValidation.d.ts.map +1 -1
- package/dist/logic/updateFieldArrayRootError.d.ts +1 -1
- package/dist/logic/updateFieldArrayRootError.d.ts.map +1 -1
- package/dist/logic/validateField.d.ts +1 -1
- package/dist/logic/validateField.d.ts.map +1 -1
- package/dist/react-server.esm.mjs +5 -5
- package/dist/react-server.esm.mjs.map +1 -1
- package/dist/types/controller.d.ts +3 -3
- package/dist/types/controller.d.ts.map +1 -1
- package/dist/types/errors.d.ts +3 -3
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/fieldArray.d.ts +4 -4
- package/dist/types/fieldArray.d.ts.map +1 -1
- package/dist/types/fields.d.ts +2 -2
- package/dist/types/fields.d.ts.map +1 -1
- package/dist/types/form.d.ts +11 -11
- package/dist/types/form.d.ts.map +1 -1
- package/dist/types/path/common.d.ts +1 -1
- package/dist/types/path/common.d.ts.map +1 -1
- package/dist/types/path/eager.d.ts +16 -3
- package/dist/types/path/eager.d.ts.map +1 -1
- package/dist/types/path/index.d.ts +1 -1
- package/dist/types/path/index.d.ts.map +1 -1
- package/dist/types/resolvers.d.ts +3 -3
- package/dist/types/resolvers.d.ts.map +1 -1
- package/dist/types/utils.d.ts +1 -1
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/types/validator.d.ts +4 -4
- package/dist/types/validator.d.ts.map +1 -1
- package/dist/useController.d.ts +1 -1
- package/dist/useController.d.ts.map +1 -1
- package/dist/useFieldArray.d.ts +1 -1
- package/dist/useFieldArray.d.ts.map +1 -1
- package/dist/useForm.d.ts +1 -1
- package/dist/useForm.d.ts.map +1 -1
- package/dist/useFormContext.d.ts +1 -1
- package/dist/useFormContext.d.ts.map +1 -1
- package/dist/useFormState.d.ts +1 -1
- package/dist/useFormState.d.ts.map +1 -1
- package/dist/useWatch.d.ts +1 -1
- package/dist/useWatch.d.ts.map +1 -1
- package/dist/utils/createSubject.d.ts +1 -1
- package/dist/utils/createSubject.d.ts.map +1 -1
- package/dist/utils/flatten.d.ts +1 -1
- package/dist/utils/flatten.d.ts.map +1 -1
- package/dist/utils/get.d.ts.map +1 -1
- package/dist/utils/isCheckBoxInput.d.ts +1 -1
- package/dist/utils/isCheckBoxInput.d.ts.map +1 -1
- package/dist/utils/isEmptyObject.d.ts +1 -1
- package/dist/utils/isEmptyObject.d.ts.map +1 -1
- package/dist/utils/isFileInput.d.ts +1 -1
- package/dist/utils/isFileInput.d.ts.map +1 -1
- package/dist/utils/isMessage.d.ts +1 -1
- package/dist/utils/isMessage.d.ts.map +1 -1
- package/dist/utils/isMultipleSelect.d.ts +1 -1
- package/dist/utils/isMultipleSelect.d.ts.map +1 -1
- package/dist/utils/isPrimitive.d.ts +1 -1
- package/dist/utils/isPrimitive.d.ts.map +1 -1
- package/dist/utils/isRadioInput.d.ts +1 -1
- package/dist/utils/isRadioInput.d.ts.map +1 -1
- package/dist/utils/isRadioOrCheckbox.d.ts +1 -1
- package/dist/utils/isRadioOrCheckbox.d.ts.map +1 -1
- package/dist/utils/live.d.ts +1 -1
- package/dist/utils/live.d.ts.map +1 -1
- package/dist/utils/set.d.ts +1 -1
- package/dist/utils/set.d.ts.map +1 -1
- package/package.json +13 -13
package/dist/index.esm.mjs
CHANGED
@@ -62,15 +62,19 @@ function cloneObject(data) {
|
|
62
62
|
return copy;
|
63
63
|
}
|
64
64
|
|
65
|
-
var
|
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 =
|
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 (typeof crypto !== 'undefined' && 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
|
-
|
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
|
-
|
2651
|
-
|
2652
|
-
|
2653
|
-
|
2654
|
-
|
2655
|
-
props.defaultValues &&
|
2656
|
-
|
2657
|
-
|
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;
|