react-hook-form 7.32.0 → 7.33.0

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.
@@ -409,6 +409,7 @@ function useController(props) {
409
409
  if (elm && field && elm.focus) {
410
410
  field._f.ref = {
411
411
  focus: () => elm.focus(),
412
+ select: () => elm.select(),
412
413
  setCustomValidity: (message) => elm.setCustomValidity(message),
413
414
  reportValidity: () => elm.reportValidity(),
414
415
  };
@@ -722,7 +723,7 @@ function useFieldArray(props) {
722
723
  _name.current = name;
723
724
  _fieldIds.current = fields;
724
725
  control._names.array.add(name);
725
- const callback = React.useCallback(({ values, name: fieldArrayName }) => {
726
+ const callback = React.useCallback(({ values, name: fieldArrayName, }) => {
726
727
  if (fieldArrayName === _name.current || !fieldArrayName) {
727
728
  const fieldValues = get(values, _name.current, []);
728
729
  setFields(fieldValues);
@@ -1025,7 +1026,7 @@ var getCheckboxValue = (options) => {
1025
1026
  var getFieldValueAs = (value, { valueAsNumber, valueAsDate, setValueAs }) => isUndefined(value)
1026
1027
  ? value
1027
1028
  : valueAsNumber
1028
- ? value === ''
1029
+ ? value === '' || isNullOrUndefined(value)
1029
1030
  ? NaN
1030
1031
  : +value
1031
1032
  : valueAsDate && isString(value)
@@ -1225,7 +1226,7 @@ var validateField = async (field, inputValue, validateAllFieldCriteria, shouldUs
1225
1226
  let exceedMin;
1226
1227
  const maxOutput = getValueAndMessage(max);
1227
1228
  const minOutput = getValueAndMessage(min);
1228
- if (!isNaN(inputValue)) {
1229
+ if (!isNullOrUndefined(inputValue) && !isNaN(inputValue)) {
1229
1230
  const valueNumber = ref.valueAsNumber || +inputValue;
1230
1231
  if (!isNullOrUndefined(maxOutput.value)) {
1231
1232
  exceedMax = valueNumber > maxOutput.value;
@@ -1439,10 +1440,12 @@ function createFormControl(props = {}) {
1439
1440
  set(_formValues, name, values);
1440
1441
  }
1441
1442
  };
1442
- const updateErrors = (name, error) => (set(_formState.errors, name, error),
1443
+ const updateErrors = (name, error) => {
1444
+ set(_formState.errors, name, error);
1443
1445
  _subjects.state.next({
1444
1446
  errors: _formState.errors,
1445
- }));
1447
+ });
1448
+ };
1446
1449
  const updateValidAndValue = (name, shouldSkipSetValueAs, value, ref) => {
1447
1450
  const field = get(_fields, name);
1448
1451
  if (field) {
@@ -1492,12 +1495,12 @@ function createFormControl(props = {}) {
1492
1495
  const previousFieldError = get(_formState.errors, name);
1493
1496
  const shouldUpdateValid = _proxyFormState.isValid && _formState.isValid !== isValid;
1494
1497
  if (props.delayError && error) {
1495
- delayErrorCallback =
1496
- delayErrorCallback || debounce(() => updateErrors(name, error));
1498
+ delayErrorCallback = debounce(() => updateErrors(name, error));
1497
1499
  delayErrorCallback(props.delayError);
1498
1500
  }
1499
1501
  else {
1500
1502
  clearTimeout(timer);
1503
+ delayErrorCallback = null;
1501
1504
  error
1502
1505
  ? set(_formState.errors, name, error)
1503
1506
  : unset(_formState.errors, name);