react-hook-form 7.49.1 → 7.49.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.
@@ -447,7 +447,7 @@ function useController(props) {
447
447
  field: {
448
448
  name,
449
449
  value,
450
- ...(isBoolean(disabled) || isBoolean(formState.disabled)
450
+ ...(isBoolean(disabled) || formState.disabled
451
451
  ? { disabled: formState.disabled || disabled }
452
452
  : {}),
453
453
  onChange: React.useCallback((event) => _registerProps.current.onChange({
@@ -1532,7 +1532,7 @@ function createFormControl(props = {}, flushRootRender) {
1532
1532
  touchedFields: {},
1533
1533
  dirtyFields: {},
1534
1534
  errors: _options.errors || {},
1535
- disabled: false,
1535
+ disabled: _options.disabled || false,
1536
1536
  };
1537
1537
  let _fields = {};
1538
1538
  let _defaultValues = isObject(_options.defaultValues) || isObject(_options.values)
@@ -1567,7 +1567,6 @@ function createFormControl(props = {}, flushRootRender) {
1567
1567
  array: createSubject(),
1568
1568
  state: createSubject(),
1569
1569
  };
1570
- const shouldCaptureDirtyFields = props.resetOptions && props.resetOptions.keepDirtyValues;
1571
1570
  const validationModeBeforeSubmit = getValidationModes(_options.mode);
1572
1571
  const validationModeAfterSubmit = getValidationModes(_options.reValidateMode);
1573
1572
  const shouldDisplayAllAssociatedErrors = _options.criteriaMode === VALIDATION_MODE.all;
@@ -1656,7 +1655,7 @@ function createFormControl(props = {}, flushRootRender) {
1656
1655
  const output = {
1657
1656
  name,
1658
1657
  };
1659
- const disabledField = get(_fields, name) && get(_fields, name)._f.disabled;
1658
+ const disabledField = !!(get(_fields, name) && get(_fields, name)._f.disabled);
1660
1659
  if (!isBlurEvent || shouldDirty) {
1661
1660
  if (_proxyFormState.isDirty) {
1662
1661
  isPreviousDirty = _formState.isDirty;
@@ -1664,7 +1663,7 @@ function createFormControl(props = {}, flushRootRender) {
1664
1663
  shouldUpdateField = isPreviousDirty !== output.isDirty;
1665
1664
  }
1666
1665
  const isCurrentFieldPristine = disabledField || deepEqual(get(_defaultValues, name), fieldValue);
1667
- isPreviousDirty = !disabledField && get(_formState.dirtyFields, name);
1666
+ isPreviousDirty = !!(!disabledField && get(_formState.dirtyFields, name));
1668
1667
  isCurrentFieldPristine || disabledField
1669
1668
  ? unset(_formState.dirtyFields, name)
1670
1669
  : set(_formState.dirtyFields, name, true);
@@ -2093,6 +2092,7 @@ function createFormControl(props = {}, flushRootRender) {
2093
2092
  field,
2094
2093
  disabled: options.disabled,
2095
2094
  name,
2095
+ value: options.value,
2096
2096
  });
2097
2097
  }
2098
2098
  else {
@@ -2215,11 +2215,11 @@ function createFormControl(props = {}, flushRootRender) {
2215
2215
  const resetField = (name, options = {}) => {
2216
2216
  if (get(_fields, name)) {
2217
2217
  if (isUndefined(options.defaultValue)) {
2218
- setValue(name, get(_defaultValues, name));
2218
+ setValue(name, cloneObject(get(_defaultValues, name)));
2219
2219
  }
2220
2220
  else {
2221
2221
  setValue(name, options.defaultValue);
2222
- set(_defaultValues, name, options.defaultValue);
2222
+ set(_defaultValues, name, cloneObject(options.defaultValue));
2223
2223
  }
2224
2224
  if (!options.keepTouched) {
2225
2225
  unset(_formState.touchedFields, name);
@@ -2227,7 +2227,7 @@ function createFormControl(props = {}, flushRootRender) {
2227
2227
  if (!options.keepDirty) {
2228
2228
  unset(_formState.dirtyFields, name);
2229
2229
  _formState.isDirty = options.defaultValue
2230
- ? _getDirty(name, get(_defaultValues, name))
2230
+ ? _getDirty(name, cloneObject(get(_defaultValues, name)))
2231
2231
  : _getDirty();
2232
2232
  }
2233
2233
  if (!options.keepError) {
@@ -2247,7 +2247,7 @@ function createFormControl(props = {}, flushRootRender) {
2247
2247
  _defaultValues = updatedValues;
2248
2248
  }
2249
2249
  if (!keepStateOptions.keepValues) {
2250
- if (keepStateOptions.keepDirtyValues || shouldCaptureDirtyFields) {
2250
+ if (keepStateOptions.keepDirtyValues) {
2251
2251
  for (const fieldName of _names.mount) {
2252
2252
  get(_formState.dirtyFields, fieldName)
2253
2253
  ? set(values, fieldName, get(_formValues, fieldName))
@@ -2471,7 +2471,7 @@ function useForm(props = {}) {
2471
2471
  dirtyFields: {},
2472
2472
  touchedFields: {},
2473
2473
  errors: props.errors || {},
2474
- disabled: false,
2474
+ disabled: props.disabled || false,
2475
2475
  defaultValues: isFunction(props.defaultValues)
2476
2476
  ? undefined
2477
2477
  : props.defaultValues,