remix-validated-form 4.6.12 → 5.0.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/.turbo/turbo-build.log +8 -8
- package/dist/index.cjs.js +178 -52
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +33 -11
- package/dist/index.esm.js +180 -54
- package/dist/index.esm.js.map +1 -1
- package/package.json +6 -5
- package/src/ValidatedForm.tsx +44 -14
- package/src/hooks.ts +5 -7
- package/src/internal/hooks.ts +5 -5
- package/src/internal/state/arrayUtil.ts +41 -3
- package/src/internal/state/createFormStore.ts +104 -27
- package/src/internal/state/fieldArray.tsx +56 -14
- package/src/server.ts +3 -0
- package/src/unreleased/formStateHooks.ts +8 -3
- package/src/validation/types.ts +4 -1
package/src/server.ts
CHANGED
@@ -42,6 +42,9 @@ export type FormDefaults = {
|
|
42
42
|
[formDefaultsKey: `${typeof FORM_DEFAULTS_FIELD}_${string}`]: any;
|
43
43
|
};
|
44
44
|
|
45
|
+
// FIXME: Remove after https://github.com/egoist/tsup/issues/813 is fixed
|
46
|
+
export type internal_FORM_DEFAULTS_FIELD = typeof FORM_DEFAULTS_FIELD;
|
47
|
+
|
45
48
|
export const setFormDefaults = <DataType = any>(
|
46
49
|
formId: string,
|
47
50
|
defaultValues: Partial<DataType>
|
@@ -11,7 +11,6 @@ import {
|
|
11
11
|
useTouchedFields,
|
12
12
|
useInternalIsValid,
|
13
13
|
useFieldErrors,
|
14
|
-
useValidateField,
|
15
14
|
useValidate,
|
16
15
|
useSetFieldErrors,
|
17
16
|
useResetFormElement,
|
@@ -20,6 +19,7 @@ import {
|
|
20
19
|
useFormSubactionProp,
|
21
20
|
useSubmitForm,
|
22
21
|
useFormValues,
|
22
|
+
useSmartValidate,
|
23
23
|
} from "../internal/hooks";
|
24
24
|
import {
|
25
25
|
FieldErrors,
|
@@ -133,7 +133,7 @@ export type FormHelpers = {
|
|
133
133
|
export const useFormHelpers = (formId?: string): FormHelpers => {
|
134
134
|
const formContext = useInternalFormContext(formId, "useFormHelpers");
|
135
135
|
const setTouched = useSetTouched(formContext);
|
136
|
-
const validateField =
|
136
|
+
const validateField = useSmartValidate(formContext.formId);
|
137
137
|
const validate = useValidate(formContext.formId);
|
138
138
|
const clearError = useClearError(formContext);
|
139
139
|
const setFieldErrors = useSetFieldErrors(formContext.formId);
|
@@ -143,7 +143,12 @@ export const useFormHelpers = (formId?: string): FormHelpers => {
|
|
143
143
|
return useMemo(
|
144
144
|
() => ({
|
145
145
|
setTouched,
|
146
|
-
validateField
|
146
|
+
validateField: async (fieldName: string) => {
|
147
|
+
const res = await validateField({
|
148
|
+
alwaysIncludeErrorsFromFields: [fieldName],
|
149
|
+
});
|
150
|
+
return res.error?.fieldErrors[fieldName] ?? null;
|
151
|
+
},
|
147
152
|
clearError,
|
148
153
|
validate,
|
149
154
|
clearAllErrors: () => setFieldErrors({}),
|
package/src/validation/types.ts
CHANGED
@@ -44,7 +44,10 @@ export type Validator<DataType> = {
|
|
44
44
|
validate: (
|
45
45
|
unvalidatedData: GenericObject
|
46
46
|
) => Promise<ValidationResult<DataType>>;
|
47
|
-
|
47
|
+
/**
|
48
|
+
* @deprecated Will be removed in a future version of remix-validated-form
|
49
|
+
*/
|
50
|
+
validateField?: (
|
48
51
|
unvalidatedData: GenericObject,
|
49
52
|
field: string
|
50
53
|
) => Promise<ValidateFieldResult>;
|