react-hook-form 7.55.0-next.1 → 7.55.0-next.3
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 +48 -52
- 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/react-server.esm.mjs +10 -16
- package/dist/react-server.esm.mjs.map +1 -1
- package/dist/types/form.d.ts +2 -15
- package/dist/types/form.d.ts.map +1 -1
- package/dist/types/path/eager.d.ts +2 -1
- package/dist/types/path/eager.d.ts.map +1 -1
- package/dist/useController.d.ts.map +1 -1
- package/dist/useWatch.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 +5 -5
package/dist/index.esm.mjs
CHANGED
@@ -106,7 +106,6 @@ var set = (object, path, value) => {
|
|
106
106
|
object[key] = newValue;
|
107
107
|
object = object[key];
|
108
108
|
}
|
109
|
-
return object;
|
110
109
|
};
|
111
110
|
|
112
111
|
const EVENTS = {
|
@@ -323,7 +322,7 @@ function useWatch(props) {
|
|
323
322
|
},
|
324
323
|
exact,
|
325
324
|
callback: (formState) => !disabled &&
|
326
|
-
updateValue(
|
325
|
+
updateValue(generateWatchOutput(_name.current, control._names, formState.values || control._formValues, false, defaultValue)),
|
327
326
|
}), [control, defaultValue, disabled, exact]);
|
328
327
|
const [value, updateValue] = React.useState(control._getWatch(name, defaultValue));
|
329
328
|
React.useEffect(() => control._removeUnmounted());
|
@@ -369,6 +368,7 @@ function useController(props) {
|
|
369
368
|
name,
|
370
369
|
exact: true,
|
371
370
|
});
|
371
|
+
const _props = React.useRef(props);
|
372
372
|
const _registerProps = React.useRef(control.register(name, {
|
373
373
|
...props.rules,
|
374
374
|
value,
|
@@ -396,47 +396,49 @@ function useController(props) {
|
|
396
396
|
get: () => get(formState.errors, name),
|
397
397
|
},
|
398
398
|
}), [formState, name]);
|
399
|
+
const onChange = React.useCallback((event) => _registerProps.current.onChange({
|
400
|
+
target: {
|
401
|
+
value: getEventValue(event),
|
402
|
+
name: name,
|
403
|
+
},
|
404
|
+
type: EVENTS.CHANGE,
|
405
|
+
}), [name]);
|
406
|
+
const onBlur = React.useCallback(() => _registerProps.current.onBlur({
|
407
|
+
target: {
|
408
|
+
value: get(control._formValues, name),
|
409
|
+
name: name,
|
410
|
+
},
|
411
|
+
type: EVENTS.BLUR,
|
412
|
+
}), [name, control._formValues]);
|
413
|
+
const ref = React.useCallback((elm) => {
|
414
|
+
const field = get(control._fields, name);
|
415
|
+
if (field && elm) {
|
416
|
+
field._f.ref = {
|
417
|
+
focus: () => elm.focus(),
|
418
|
+
select: () => elm.select(),
|
419
|
+
setCustomValidity: (message) => elm.setCustomValidity(message),
|
420
|
+
reportValidity: () => elm.reportValidity(),
|
421
|
+
};
|
422
|
+
}
|
423
|
+
}, [control._fields, name]);
|
399
424
|
const field = React.useMemo(() => ({
|
400
425
|
name,
|
401
426
|
value,
|
402
427
|
...(isBoolean(disabled) || formState.disabled
|
403
428
|
? { disabled: formState.disabled || disabled }
|
404
429
|
: {}),
|
405
|
-
onChange
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
},
|
410
|
-
type: EVENTS.CHANGE,
|
411
|
-
}),
|
412
|
-
onBlur: () => _registerProps.current.onBlur({
|
413
|
-
target: {
|
414
|
-
value: get(control._formValues, name),
|
415
|
-
name: name,
|
416
|
-
},
|
417
|
-
type: EVENTS.BLUR,
|
418
|
-
}),
|
419
|
-
ref: (elm) => {
|
420
|
-
const field = get(control._fields, name);
|
421
|
-
if (field && elm) {
|
422
|
-
field._f.ref = {
|
423
|
-
focus: () => elm.focus(),
|
424
|
-
select: () => elm.select(),
|
425
|
-
setCustomValidity: (message) => elm.setCustomValidity(message),
|
426
|
-
reportValidity: () => elm.reportValidity(),
|
427
|
-
};
|
428
|
-
}
|
429
|
-
},
|
430
|
-
}), [
|
431
|
-
name,
|
432
|
-
control._formValues,
|
433
|
-
disabled,
|
434
|
-
formState.disabled,
|
435
|
-
value,
|
436
|
-
control._fields,
|
437
|
-
]);
|
430
|
+
onChange,
|
431
|
+
onBlur,
|
432
|
+
ref,
|
433
|
+
}), [name, disabled, formState.disabled, onChange, onBlur, ref, value]);
|
438
434
|
React.useEffect(() => {
|
439
435
|
const _shouldUnregisterField = control._options.shouldUnregister || shouldUnregister;
|
436
|
+
control.register(name, {
|
437
|
+
..._props.current.rules,
|
438
|
+
...(isBoolean(_props.current.disabled)
|
439
|
+
? { disabled: _props.current.disabled }
|
440
|
+
: {}),
|
441
|
+
});
|
440
442
|
const updateMounted = (name, value) => {
|
441
443
|
const field = get(control._fields, name);
|
442
444
|
if (field && field._f) {
|
@@ -463,7 +465,6 @@ function useController(props) {
|
|
463
465
|
React.useEffect(() => {
|
464
466
|
control._setDisabledField({
|
465
467
|
disabled,
|
466
|
-
fields: control._fields,
|
467
468
|
name,
|
468
469
|
});
|
469
470
|
}, [disabled, name, control]);
|
@@ -1411,18 +1412,15 @@ function createFormControl(props = {}) {
|
|
1411
1412
|
name,
|
1412
1413
|
};
|
1413
1414
|
if (!_options.disabled) {
|
1414
|
-
const disabledField = !!(get(_fields, name) &&
|
1415
|
-
get(_fields, name)._f &&
|
1416
|
-
get(_fields, name)._f.disabled);
|
1417
1415
|
if (!isBlurEvent || shouldDirty) {
|
1418
1416
|
if (_proxyFormState.isDirty || _proxySubscribeFormState.isDirty) {
|
1419
1417
|
isPreviousDirty = _formState.isDirty;
|
1420
1418
|
_formState.isDirty = output.isDirty = _getDirty();
|
1421
1419
|
shouldUpdateField = isPreviousDirty !== output.isDirty;
|
1422
1420
|
}
|
1423
|
-
const isCurrentFieldPristine =
|
1424
|
-
isPreviousDirty = !!
|
1425
|
-
isCurrentFieldPristine
|
1421
|
+
const isCurrentFieldPristine = deepEqual(get(_defaultValues, name), fieldValue);
|
1422
|
+
isPreviousDirty = !!get(_formState.dirtyFields, name);
|
1423
|
+
isCurrentFieldPristine
|
1426
1424
|
? unset(_formState.dirtyFields, name)
|
1427
1425
|
: set(_formState.dirtyFields, name, true);
|
1428
1426
|
output.dirtyFields = _formState.dirtyFields;
|
@@ -1598,7 +1596,7 @@ function createFormControl(props = {}) {
|
|
1598
1596
|
if (!fieldReference.ref.type) {
|
1599
1597
|
_subjects.state.next({
|
1600
1598
|
name,
|
1601
|
-
values:
|
1599
|
+
values: cloneObject(_formValues),
|
1602
1600
|
});
|
1603
1601
|
}
|
1604
1602
|
}
|
@@ -1629,7 +1627,7 @@ function createFormControl(props = {}) {
|
|
1629
1627
|
if (isFieldArray) {
|
1630
1628
|
_subjects.array.next({
|
1631
1629
|
name,
|
1632
|
-
values:
|
1630
|
+
values: cloneObject(_formValues),
|
1633
1631
|
});
|
1634
1632
|
if ((_proxyFormState.isDirty ||
|
1635
1633
|
_proxyFormState.dirtyFields ||
|
@@ -1651,7 +1649,7 @@ function createFormControl(props = {}) {
|
|
1651
1649
|
isWatched(name, _names) && _subjects.state.next({ ..._formState });
|
1652
1650
|
_subjects.state.next({
|
1653
1651
|
name: _state.mount ? name : undefined,
|
1654
|
-
values:
|
1652
|
+
values: cloneObject(_formValues),
|
1655
1653
|
});
|
1656
1654
|
};
|
1657
1655
|
const onChange = async (event) => {
|
@@ -1693,7 +1691,7 @@ function createFormControl(props = {}) {
|
|
1693
1691
|
_subjects.state.next({
|
1694
1692
|
name,
|
1695
1693
|
type: event.type,
|
1696
|
-
values:
|
1694
|
+
values: cloneObject(_formValues),
|
1697
1695
|
});
|
1698
1696
|
if (shouldSkipValidation) {
|
1699
1697
|
if (_proxyFormState.isValid || _proxySubscribeFormState.isValid) {
|
@@ -1834,7 +1832,7 @@ function createFormControl(props = {}) {
|
|
1834
1832
|
if (shouldSubscribeByName(props.name, formState.name, props.exact) &&
|
1835
1833
|
shouldRenderFormState(formState, props.formState || _proxyFormState, _setFormState, props.reRenderRoot)) {
|
1836
1834
|
props.callback({
|
1837
|
-
values: _formValues,
|
1835
|
+
values: { ..._formValues },
|
1838
1836
|
..._formState,
|
1839
1837
|
...formState,
|
1840
1838
|
});
|
@@ -1870,7 +1868,7 @@ function createFormControl(props = {}) {
|
|
1870
1868
|
unset(_defaultValues, fieldName);
|
1871
1869
|
}
|
1872
1870
|
_subjects.state.next({
|
1873
|
-
values:
|
1871
|
+
values: cloneObject(_formValues),
|
1874
1872
|
});
|
1875
1873
|
_subjects.state.next({
|
1876
1874
|
..._formState,
|
@@ -1878,12 +1876,11 @@ function createFormControl(props = {}) {
|
|
1878
1876
|
});
|
1879
1877
|
!options.keepIsValid && _setValid();
|
1880
1878
|
};
|
1881
|
-
const _setDisabledField = ({ disabled, name,
|
1879
|
+
const _setDisabledField = ({ disabled, name, }) => {
|
1882
1880
|
if ((isBoolean(disabled) && _state.mount) ||
|
1883
1881
|
!!disabled ||
|
1884
1882
|
_names.disabled.has(name)) {
|
1885
1883
|
disabled ? _names.disabled.add(name) : _names.disabled.delete(name);
|
1886
|
-
updateTouchAndDirty(name, getFieldValue(field ? field._f : get(fields, name)._f), false, false, true);
|
1887
1884
|
}
|
1888
1885
|
};
|
1889
1886
|
const register = (name, options = {}) => {
|
@@ -1901,7 +1898,6 @@ function createFormControl(props = {}) {
|
|
1901
1898
|
_names.mount.add(name);
|
1902
1899
|
if (field) {
|
1903
1900
|
_setDisabledField({
|
1904
|
-
field,
|
1905
1901
|
disabled: isBoolean(options.disabled)
|
1906
1902
|
? options.disabled
|
1907
1903
|
: _options.disabled,
|
@@ -2536,7 +2532,7 @@ function useFieldArray(props) {
|
|
2536
2532
|
}
|
2537
2533
|
control._subjects.state.next({
|
2538
2534
|
name,
|
2539
|
-
values:
|
2535
|
+
values: cloneObject(control._formValues),
|
2540
2536
|
});
|
2541
2537
|
control._names.focus &&
|
2542
2538
|
iterateFieldsByAction(control._fields, (ref, key) => {
|