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/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>;