react-hook-form 7.24.0 → 7.24.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.
@@ -285,8 +285,8 @@ function useController(props) {
285
285
  formState,
286
286
  fieldState: {
287
287
  invalid: !!get(formState.errors, name),
288
- isDirty: !!get(formState.dirtyFields, name),
289
- isTouched: !!get(formState.touchedFields, name),
288
+ isDirty: get(formState.dirtyFields, name),
289
+ isTouched: get(formState.touchedFields, name),
290
290
  error: get(formState.errors, name),
291
291
  },
292
292
  };
@@ -1378,7 +1378,8 @@ function createFormControl(props = {}) {
1378
1378
  const setValue = (name, value, options = {}) => {
1379
1379
  const field = get(_fields, name);
1380
1380
  const isFieldArray = _names.array.has(name);
1381
- set(_formValues, name, value);
1381
+ const cloneValue = cloneObject(value);
1382
+ set(_formValues, name, cloneValue);
1382
1383
  if (isFieldArray) {
1383
1384
  _subjects.array.next({
1384
1385
  name,
@@ -1390,14 +1391,14 @@ function createFormControl(props = {}) {
1390
1391
  _subjects.state.next({
1391
1392
  name,
1392
1393
  dirtyFields: _formState.dirtyFields,
1393
- isDirty: _getDirty(name, value),
1394
+ isDirty: _getDirty(name, cloneValue),
1394
1395
  });
1395
1396
  }
1396
1397
  }
1397
1398
  else {
1398
- field && !field._f && !isNullOrUndefined(value)
1399
- ? setValues(name, value, options)
1400
- : setFieldValue(name, value, options);
1399
+ field && !field._f && !isNullOrUndefined(cloneValue)
1400
+ ? setValues(name, cloneValue, options)
1401
+ : setFieldValue(name, cloneValue, options);
1401
1402
  }
1402
1403
  isWatched(name, _names) && _subjects.state.next({});
1403
1404
  _subjects.watch.next({
@@ -1502,6 +1503,12 @@ function createFormControl(props = {}) {
1502
1503
  ? get(values, fieldNames)
1503
1504
  : fieldNames.map((name) => get(values, name));
1504
1505
  };
1506
+ const _getFieldState = (name, formState) => ({
1507
+ invalid: !!get((formState || _formState).errors, name),
1508
+ isDirty: get((formState || _formState).dirtyFields, name),
1509
+ isTouched: get((formState || _formState).touchedFields, name),
1510
+ error: get((formState || _formState).errors, name),
1511
+ });
1505
1512
  const clearErrors = (name) => {
1506
1513
  name
1507
1514
  ? convertToArrayPayload(name).forEach((inputName) => unset(_formState.errors, inputName))
@@ -1830,6 +1837,7 @@ function createFormControl(props = {}) {
1830
1837
  unregister,
1831
1838
  setError,
1832
1839
  setFocus,
1840
+ _getFieldState,
1833
1841
  };
1834
1842
  }
1835
1843