remix-validated-form 4.6.12 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
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 = useValidateField(formContext.formId);
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({}),
@@ -44,7 +44,10 @@ export type Validator<DataType> = {
44
44
  validate: (
45
45
  unvalidatedData: GenericObject
46
46
  ) => Promise<ValidationResult<DataType>>;
47
- validateField: (
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>;