react-hook-form 7.25.3 → 8.0.0-alpha.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.
- package/README.md +6 -0
- package/dist/__typetests__/__fixtures__/index.d.ts +2 -0
- package/dist/__typetests__/__fixtures__/index.d.ts.map +1 -0
- package/dist/__typetests__/__fixtures__/type.d.ts +12 -0
- package/dist/__typetests__/__fixtures__/type.d.ts.map +1 -0
- package/dist/__typetests__/types/__fixtures__/index.d.ts +4 -0
- package/dist/__typetests__/types/__fixtures__/index.d.ts.map +1 -0
- package/dist/__typetests__/types/__fixtures__/pathString.d.ts +4 -0
- package/dist/__typetests__/types/__fixtures__/pathString.d.ts.map +1 -0
- package/dist/__typetests__/types/__fixtures__/traversable.d.ts +14 -0
- package/dist/__typetests__/types/__fixtures__/traversable.d.ts.map +1 -0
- package/dist/__typetests__/types/__fixtures__/tuple.d.ts +15 -0
- package/dist/__typetests__/types/__fixtures__/tuple.d.ts.map +1 -0
- package/dist/__typetests__/types/form.test-d.d.ts +2 -0
- package/dist/__typetests__/types/form.test-d.d.ts.map +1 -0
- package/dist/__typetests__/types/path/auto.test-d.d.ts +2 -0
- package/dist/__typetests__/types/path/auto.test-d.d.ts.map +1 -0
- package/dist/__typetests__/types/path/internal/autoCompletePath.test-d.d.ts +2 -0
- package/dist/__typetests__/types/path/internal/autoCompletePath.test-d.d.ts.map +1 -0
- package/dist/__typetests__/types/path/internal/hasPath.test-d.d.ts +2 -0
- package/dist/__typetests__/types/path/internal/hasPath.test-d.d.ts.map +1 -0
- package/dist/__typetests__/types/path/internal/keys.test-d.d.ts +2 -0
- package/dist/__typetests__/types/path/internal/keys.test-d.d.ts.map +1 -0
- package/dist/__typetests__/types/path/internal/pathGetValue.test-d.d.ts +2 -0
- package/dist/__typetests__/types/path/internal/pathGetValue.test-d.d.ts.map +1 -0
- package/dist/__typetests__/types/path/internal/pathSetValue.test-d.d.ts +2 -0
- package/dist/__typetests__/types/path/internal/pathSetValue.test-d.d.ts.map +1 -0
- package/dist/__typetests__/types/path/internal/pathTuple.test-d.d.ts +2 -0
- package/dist/__typetests__/types/path/internal/pathTuple.test-d.d.ts.map +1 -0
- package/dist/__typetests__/types/path/internal/utils.test-d.d.ts +2 -0
- package/dist/__typetests__/types/path/internal/utils.test-d.d.ts.map +1 -0
- package/dist/__typetests__/types/path/lazy.test-d.d.ts +2 -0
- package/dist/__typetests__/types/path/lazy.test-d.d.ts.map +1 -0
- package/dist/__typetests__/types/path/value.test-d.d.ts +2 -0
- package/dist/__typetests__/types/path/value.test-d.d.ts.map +1 -0
- package/dist/__typetests__/types/util.test-d.d.ts +2 -0
- package/dist/__typetests__/types/util.test-d.d.ts.map +1 -0
- package/dist/__typetests__/utils/join.test-d.d.ts +2 -0
- package/dist/__typetests__/utils/join.test-d.d.ts.map +1 -0
- package/dist/__typetests__/utils/of.test-d.d.ts +2 -0
- package/dist/__typetests__/utils/of.test-d.d.ts.map +1 -0
- package/dist/controller.d.ts +1 -1
- package/dist/controller.d.ts.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.mjs +40 -11
- 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/getResolverOptions.d.ts +2 -2
- package/dist/logic/hasValidation.d.ts +1 -1
- package/dist/logic/validateField.d.ts.map +1 -1
- package/dist/types/controller.d.ts +6 -6
- package/dist/types/controller.d.ts.map +1 -1
- package/dist/types/fieldArray.d.ts +7 -9
- package/dist/types/fieldArray.d.ts.map +1 -1
- package/dist/types/form.d.ts +22 -23
- package/dist/types/form.d.ts.map +1 -1
- package/dist/types/path/auto.d.ts +76 -0
- package/dist/types/path/auto.d.ts.map +1 -0
- package/dist/types/path/branded.d.ts +61 -0
- package/dist/types/path/branded.d.ts.map +1 -0
- package/dist/types/path/index.d.ts +7 -3
- package/dist/types/path/index.d.ts.map +1 -1
- package/dist/types/path/internal/autoCompletePath.d.ts +173 -0
- package/dist/types/path/internal/autoCompletePath.d.ts.map +1 -0
- package/dist/types/path/internal/hasPath.d.ts +56 -0
- package/dist/types/path/internal/hasPath.d.ts.map +1 -0
- package/dist/types/path/internal/keys.d.ts +103 -0
- package/dist/types/path/internal/keys.d.ts.map +1 -0
- package/dist/types/path/internal/pathGetValue.d.ts +76 -0
- package/dist/types/path/internal/pathGetValue.d.ts.map +1 -0
- package/dist/types/path/internal/pathSetValue.d.ts +96 -0
- package/dist/types/path/internal/pathSetValue.d.ts.map +1 -0
- package/dist/types/path/internal/pathTuple.d.ts +73 -0
- package/dist/types/path/internal/pathTuple.d.ts.map +1 -0
- package/dist/types/path/internal/utils.d.ts +84 -0
- package/dist/types/path/internal/utils.d.ts.map +1 -0
- package/dist/types/path/lazy.d.ts +62 -0
- package/dist/types/path/lazy.d.ts.map +1 -0
- package/dist/types/path/pathString.d.ts +6 -0
- package/dist/types/path/pathString.d.ts.map +1 -0
- package/dist/types/path/value.d.ts +49 -0
- package/dist/types/path/value.d.ts.map +1 -0
- package/dist/types/utils.d.ts +11 -2
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/types/validator.d.ts +2 -2
- package/dist/types/validator.d.ts.map +1 -1
- package/dist/useController.d.ts +2 -2
- package/dist/useController.d.ts.map +1 -1
- package/dist/useFieldArray.d.ts +1 -1
- package/dist/useFieldArray.d.ts.map +1 -1
- package/dist/useFormState.d.ts +2 -2
- package/dist/useFormState.d.ts.map +1 -1
- package/dist/useWatch.d.ts +6 -7
- package/dist/useWatch.d.ts.map +1 -1
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/join.d.ts +16 -0
- package/dist/utils/join.d.ts.map +1 -0
- package/dist/utils/of.d.ts +13 -0
- package/dist/utils/of.d.ts.map +1 -0
- package/package.json +9 -9
- package/dist/types/path/common.d.ts +0 -316
- package/dist/types/path/common.d.ts.map +0 -1
- package/dist/types/path/eager.d.ts +0 -82
- package/dist/types/path/eager.d.ts.map +0 -1
- package/dist/utils/omitKeys.d.ts +0 -3
- package/dist/utils/omitKeys.d.ts.map +0 -1
package/dist/index.esm.mjs
CHANGED
@@ -227,7 +227,7 @@ function useController(props) {
|
|
227
227
|
control,
|
228
228
|
name,
|
229
229
|
});
|
230
|
-
const _registerProps = React.useRef(control.register(name, Object.assign(Object.assign({}, props.rules), { value })));
|
230
|
+
const _registerProps = React.useRef(control.register(name, Object.assign(Object.assign({}, props.rules), { value: value })));
|
231
231
|
React.useEffect(() => {
|
232
232
|
const updateMounted = (name, value) => {
|
233
233
|
const field = get(control._fields, name);
|
@@ -247,7 +247,7 @@ function useController(props) {
|
|
247
247
|
}, [name, control, isArrayField, shouldUnregister]);
|
248
248
|
return {
|
249
249
|
field: {
|
250
|
-
name,
|
250
|
+
name: name,
|
251
251
|
value,
|
252
252
|
onChange: React.useCallback((event) => {
|
253
253
|
_registerProps.current.onChange({
|
@@ -288,6 +288,37 @@ const Controller = (props) => props.render(useController(props));
|
|
288
288
|
var appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria
|
289
289
|
? Object.assign(Object.assign({}, errors[name]), { types: Object.assign(Object.assign({}, (errors[name] && errors[name].types ? errors[name].types : {})), { [type]: message || true }) }) : {};
|
290
290
|
|
291
|
+
/**
|
292
|
+
* Function for joining two paths / path strings to a {@link TypedFieldPath}.
|
293
|
+
* @param path - base path
|
294
|
+
* @param childPath - the path which should be appended to the base path
|
295
|
+
* @example
|
296
|
+
* ```
|
297
|
+
* type Baz = { baz: string }
|
298
|
+
* type FooBarBaz = { foo: { bar: Baz }}
|
299
|
+
*
|
300
|
+
* const path: TypedFieldPath<FooBarBaz, Baz> = of('foo.bar')
|
301
|
+
* const joinedPath: TypedFieldPath<FooBar, string> = join(path, 'baz')
|
302
|
+
* ```
|
303
|
+
*/
|
304
|
+
function join(path, childPath) {
|
305
|
+
return `${path}.${childPath}`;
|
306
|
+
}
|
307
|
+
|
308
|
+
/**
|
309
|
+
* Function for creating a {@link TypedFieldPath} from a path string.
|
310
|
+
* @param path - path string
|
311
|
+
* @example
|
312
|
+
* ```
|
313
|
+
* type FooBar = { foo: { bar: string }}
|
314
|
+
*
|
315
|
+
* const path: TypedFieldPath<FooBar, string> = of('foo.bar')
|
316
|
+
* ```
|
317
|
+
*/
|
318
|
+
function of(path) {
|
319
|
+
return path;
|
320
|
+
}
|
321
|
+
|
291
322
|
var isKey = (value) => /^\w*$/.test(value);
|
292
323
|
|
293
324
|
var stringToPath = (input) => compact(input.replace(/["|']|\]/g, '').split(/\.|\[/));
|
@@ -434,7 +465,7 @@ var updateAt = (fieldValues, index, value) => {
|
|
434
465
|
|
435
466
|
const useFieldArray = (props) => {
|
436
467
|
const methods = useFormContext();
|
437
|
-
const { control = methods.control, name,
|
468
|
+
const { control = methods.control, name, shouldUnregister } = props;
|
438
469
|
const [fields, setFields] = React.useState(control._getFieldArray(name));
|
439
470
|
const ids = React.useRef(control._getFieldArray(name).map(generateId));
|
440
471
|
const _fieldIds = React.useRef(fields);
|
@@ -569,7 +600,7 @@ const useFieldArray = (props) => {
|
|
569
600
|
(control._options.shouldUnregister || shouldUnregister) &&
|
570
601
|
control.unregister(name);
|
571
602
|
};
|
572
|
-
}, [name, control,
|
603
|
+
}, [name, control, shouldUnregister]);
|
573
604
|
return {
|
574
605
|
swap: React.useCallback(swap, [updateValues, name, control]),
|
575
606
|
move: React.useCallback(move, [updateValues, name, control]),
|
@@ -579,7 +610,7 @@ const useFieldArray = (props) => {
|
|
579
610
|
insert: React.useCallback(insert$1, [updateValues, name, control]),
|
580
611
|
update: React.useCallback(update, [updateValues, name, control]),
|
581
612
|
replace: React.useCallback(replace, [updateValues, name, control]),
|
582
|
-
fields: React.useMemo(() => fields.map((field, index) => (Object.assign(Object.assign({}, field), {
|
613
|
+
fields: React.useMemo(() => fields.map((field, index) => (Object.assign(Object.assign({}, field), { id: ids.current[index] || generateId() }))), [fields]),
|
583
614
|
};
|
584
615
|
};
|
585
616
|
|
@@ -970,8 +1001,7 @@ var validateField = async (field, inputValue, validateAllFieldCriteria, shouldUs
|
|
970
1001
|
const maxOutput = getValueAndMessage(max);
|
971
1002
|
const minOutput = getValueAndMessage(min);
|
972
1003
|
if (!isNaN(inputValue)) {
|
973
|
-
const valueNumber = ref.valueAsNumber ||
|
974
|
-
parseFloat(inputValue);
|
1004
|
+
const valueNumber = ref.valueAsNumber || +inputValue;
|
975
1005
|
if (!isNullOrUndefined(maxOutput.value)) {
|
976
1006
|
exceedMax = valueNumber > maxOutput.value;
|
977
1007
|
}
|
@@ -1549,7 +1579,7 @@ function createFormControl(props = {}) {
|
|
1549
1579
|
}
|
1550
1580
|
_subjects.watch.next({});
|
1551
1581
|
_subjects.state.next(Object.assign(Object.assign({}, _formState), (!options.keepDirty ? {} : { isDirty: _getDirty() })));
|
1552
|
-
|
1582
|
+
_proxyFormState.isValid && _updateValid();
|
1553
1583
|
};
|
1554
1584
|
const register = (name, options = {}) => {
|
1555
1585
|
let field = get(_fields, name);
|
@@ -1733,8 +1763,7 @@ function createFormControl(props = {}) {
|
|
1733
1763
|
watchAll: false,
|
1734
1764
|
focus: '',
|
1735
1765
|
};
|
1736
|
-
_stateFlags.mount =
|
1737
|
-
!_proxyFormState.isValid || !!keepStateOptions.keepIsValid;
|
1766
|
+
_stateFlags.mount = !_proxyFormState.isValid;
|
1738
1767
|
_stateFlags.watch = !!props.shouldUnregister;
|
1739
1768
|
_subjects.state.next({
|
1740
1769
|
submitCount: keepStateOptions.keepSubmitCount
|
@@ -1877,5 +1906,5 @@ function useForm(props = {}) {
|
|
1877
1906
|
return _formControl.current;
|
1878
1907
|
}
|
1879
1908
|
|
1880
|
-
export { Controller, FormProvider, appendErrors, get, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };
|
1909
|
+
export { Controller, FormProvider, appendErrors, get, join, of, set, useController, useFieldArray, useForm, useFormContext, useFormState, useWatch };
|
1881
1910
|
//# sourceMappingURL=index.esm.mjs.map
|