@bombillazo/rhf-plus 7.72.0-plus.0 → 7.72.1-plus.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/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.mjs +62 -50
- 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/createFormControl.d.ts.map +1 -1
- package/dist/logic/isNameInFieldArray.d.ts.map +1 -1
- package/dist/react-server.esm.mjs +19 -8
- package/dist/react-server.esm.mjs.map +1 -1
- package/dist/types/form.d.ts +1 -0
- package/dist/types/form.d.ts.map +1 -1
- package/dist/useFormContext.d.ts.map +1 -1
- package/package.json +20 -20
package/dist/index.esm.mjs
CHANGED
|
@@ -19,9 +19,9 @@ var getEventValue = (event) => isObject(event) && event.target
|
|
|
19
19
|
: event.target.value
|
|
20
20
|
: event;
|
|
21
21
|
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
var isNameInFieldArray = (names, name) => name
|
|
23
|
+
.split('.')
|
|
24
|
+
.some((part, index, arr) => !isNaN(Number(part)) && names.has(arr.slice(0, index).join('.')));
|
|
25
25
|
|
|
26
26
|
var isPlainObject = (tempObject) => {
|
|
27
27
|
const prototypeCopy = tempObject.constructor && tempObject.constructor.prototype;
|
|
@@ -285,8 +285,8 @@ function deepEqual(object1, object2, _internal_visited = new WeakSet()) {
|
|
|
285
285
|
if (key !== 'ref') {
|
|
286
286
|
const val2 = object2[key];
|
|
287
287
|
if ((isDateObject(val1) && isDateObject(val2)) ||
|
|
288
|
-
(isObject(val1)
|
|
289
|
-
|
|
288
|
+
((isObject(val1) || Array.isArray(val1)) &&
|
|
289
|
+
(isObject(val2) || Array.isArray(val2)))
|
|
290
290
|
? !deepEqual(val1, val2, _internal_visited)
|
|
291
291
|
: !Object.is(val1, val2)) {
|
|
292
292
|
return false;
|
|
@@ -740,46 +740,47 @@ const useFormContext = () => React.useContext(HookFormContext);
|
|
|
740
740
|
*/
|
|
741
741
|
const FormProvider = (props) => {
|
|
742
742
|
const { children, watch, getValues, getFieldState, setError, clearErrors, setValue, trigger, formState, resetField, reset, handleSubmit, unregister, control, register, setFocus, subscribe, id, submit, } = props;
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
743
|
+
const memoizedValue = React.useMemo(() => ({
|
|
744
|
+
watch,
|
|
745
|
+
getValues,
|
|
746
|
+
getFieldState,
|
|
747
|
+
setError,
|
|
748
|
+
clearErrors,
|
|
749
|
+
setValue,
|
|
750
|
+
trigger,
|
|
751
|
+
formState,
|
|
752
|
+
resetField,
|
|
753
|
+
reset,
|
|
754
|
+
handleSubmit,
|
|
755
|
+
unregister,
|
|
756
|
+
control,
|
|
757
|
+
register,
|
|
758
|
+
setFocus,
|
|
759
|
+
subscribe,
|
|
760
|
+
id,
|
|
761
|
+
submit,
|
|
762
|
+
}), [
|
|
763
|
+
clearErrors,
|
|
764
|
+
control,
|
|
765
|
+
formState,
|
|
766
|
+
getFieldState,
|
|
767
|
+
getValues,
|
|
768
|
+
handleSubmit,
|
|
769
|
+
id,
|
|
770
|
+
register,
|
|
771
|
+
reset,
|
|
772
|
+
resetField,
|
|
773
|
+
setError,
|
|
774
|
+
setFocus,
|
|
775
|
+
setValue,
|
|
776
|
+
submit,
|
|
777
|
+
subscribe,
|
|
778
|
+
trigger,
|
|
779
|
+
unregister,
|
|
780
|
+
watch,
|
|
781
|
+
]);
|
|
782
|
+
return (React.createElement(HookFormContext.Provider, { value: memoizedValue },
|
|
783
|
+
React.createElement(HookFormControlContext.Provider, { value: memoizedValue.control }, children)));
|
|
783
784
|
};
|
|
784
785
|
|
|
785
786
|
const POST_REQUEST = 'post';
|
|
@@ -1160,6 +1161,8 @@ function getFieldValue(_f) {
|
|
|
1160
1161
|
return getFieldValueAs(isUndefined(ref.value) ? _f.ref.value : ref.value, _f);
|
|
1161
1162
|
}
|
|
1162
1163
|
|
|
1164
|
+
var getNodeParentName = (name) => name.substring(0, name.search(/\.\d+(\.|$)/)) || name;
|
|
1165
|
+
|
|
1163
1166
|
var getResolverOptions = (fieldsNames, _fields, criteriaMode, shouldUseNativeValidation) => {
|
|
1164
1167
|
const fields = {};
|
|
1165
1168
|
for (const name of fieldsNames) {
|
|
@@ -1599,6 +1602,7 @@ function createFormControl(props = {}) {
|
|
|
1599
1602
|
unMount: new Set(),
|
|
1600
1603
|
array: new Set(),
|
|
1601
1604
|
watch: new Set(),
|
|
1605
|
+
registerName: new Set(),
|
|
1602
1606
|
};
|
|
1603
1607
|
let delayErrorCallback;
|
|
1604
1608
|
let timer = 0;
|
|
@@ -1678,6 +1682,11 @@ function createFormControl(props = {}) {
|
|
|
1678
1682
|
});
|
|
1679
1683
|
}
|
|
1680
1684
|
};
|
|
1685
|
+
const _updateDirtyFields = (name) => {
|
|
1686
|
+
const fullDirtyFields = getDirtyFields(_defaultValues, _formValues);
|
|
1687
|
+
const rootName = getNodeParentName(name);
|
|
1688
|
+
set(_formState.dirtyFields, rootName, get(fullDirtyFields, rootName));
|
|
1689
|
+
};
|
|
1681
1690
|
const _setFieldArray = (name, values = [], method, args, shouldSetValues = true, shouldUpdateFieldsAndState = true) => {
|
|
1682
1691
|
if (args && method && !_options.disabled) {
|
|
1683
1692
|
_state.action = true;
|
|
@@ -1699,9 +1708,7 @@ function createFormControl(props = {}) {
|
|
|
1699
1708
|
shouldSetValues && set(_formState.touchedFields, name, touchedFields);
|
|
1700
1709
|
}
|
|
1701
1710
|
if (_proxyFormState.dirtyFields || _proxySubscribeFormState.dirtyFields) {
|
|
1702
|
-
|
|
1703
|
-
const rootName = getNodeParentName(name);
|
|
1704
|
-
set(_formState.dirtyFields, rootName, get(fullDirtyFields, rootName));
|
|
1711
|
+
_updateDirtyFields(name);
|
|
1705
1712
|
}
|
|
1706
1713
|
_subjects.state.next({
|
|
1707
1714
|
name,
|
|
@@ -2077,9 +2084,10 @@ function createFormControl(props = {}) {
|
|
|
2077
2084
|
_proxyFormState.isDirtySinceSubmit ||
|
|
2078
2085
|
_proxySubscribeFormState.isDirtySinceSubmit) &&
|
|
2079
2086
|
options.shouldDirty) {
|
|
2087
|
+
_updateDirtyFields(name);
|
|
2080
2088
|
_subjects.state.next({
|
|
2081
2089
|
name,
|
|
2082
|
-
dirtyFields:
|
|
2090
|
+
dirtyFields: _formState.dirtyFields,
|
|
2083
2091
|
isDirty: _getDirty(name, cloneValue),
|
|
2084
2092
|
...((_formState.isSubmitted || _hasBeenSubmitted) &&
|
|
2085
2093
|
!_formState.isDirtySinceSubmit
|
|
@@ -2473,6 +2481,7 @@ function createFormControl(props = {}) {
|
|
|
2473
2481
|
const disabledIsDefined = isBoolean(options.disabled) ||
|
|
2474
2482
|
isBoolean(_options.disabled) ||
|
|
2475
2483
|
Array.isArray(_options.disabled);
|
|
2484
|
+
const shouldRevalidateRemount = !_names.registerName.has(name) && field && !field._f.mount;
|
|
2476
2485
|
set(_fields, name, {
|
|
2477
2486
|
...(field || {}),
|
|
2478
2487
|
_f: {
|
|
@@ -2483,7 +2492,7 @@ function createFormControl(props = {}) {
|
|
|
2483
2492
|
},
|
|
2484
2493
|
});
|
|
2485
2494
|
_names.mount.add(name);
|
|
2486
|
-
if (field) {
|
|
2495
|
+
if (field && !shouldRevalidateRemount) {
|
|
2487
2496
|
_setDisabledField({
|
|
2488
2497
|
disabled: isBoolean(options.disabled)
|
|
2489
2498
|
? options.disabled
|
|
@@ -2522,7 +2531,9 @@ function createFormControl(props = {}) {
|
|
|
2522
2531
|
onFocus: onChange,
|
|
2523
2532
|
ref: (ref) => {
|
|
2524
2533
|
if (ref) {
|
|
2534
|
+
_names.registerName.add(name);
|
|
2525
2535
|
register(name, options);
|
|
2536
|
+
_names.registerName.delete(name);
|
|
2526
2537
|
field = get(_fields, name);
|
|
2527
2538
|
const fieldRef = isUndefined(ref.value)
|
|
2528
2539
|
? ref.querySelectorAll
|
|
@@ -2768,6 +2779,7 @@ function createFormControl(props = {}) {
|
|
|
2768
2779
|
mount: keepStateOptions.keepDirtyValues ? _names.mount : new Set(),
|
|
2769
2780
|
unMount: new Set(),
|
|
2770
2781
|
array: new Set(),
|
|
2782
|
+
registerName: new Set(),
|
|
2771
2783
|
disabled: new Set(),
|
|
2772
2784
|
readonly: new Set(),
|
|
2773
2785
|
watch: new Set(),
|