zod-auto-form
Version:
Auto-generate typed React forms from Zod schemas
44 lines (43 loc) • 4.45 kB
TypeScript
import { ZodFormClassed } from "zod-helper";
import type { AutoFormProps, ZodSchema } from "../../types/auto-form-type";
type VisibilityState = {
hidden: boolean;
disabled: boolean;
};
export default function useFormData<T extends ZodSchema>({ schema, changePositionOfFields, fieldTypeOverrides, groupByZodKeys, visibilityRules, defaultValues, onSubmit, onSubmitError, onValuesChange, isRemoveNullValues, }: AutoFormProps<T> & {
onValuesChange?: (values: Record<string, unknown>) => void;
}): {
zodFormData: ZodFormClassed<T>;
formVersion: number;
setFormVersion: import("react").Dispatch<import("react").SetStateAction<number>>;
mergedDefaultValues: Record<string, unknown>;
formSubmittedRef: import("react").RefObject<boolean>;
handleSubmit: (props: {
value: unknown;
}) => any;
appForm: import("@tanstack/form-core").FormApi<Record<string, unknown>, import("@tanstack/form-core").FormValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormAsyncValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormAsyncValidateOrFn<Record<string, unknown>> | undefined, T, import("@tanstack/form-core").FormAsyncValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormAsyncValidateOrFn<Record<string, unknown>> | undefined, unknown> & import("@tanstack/react-form").ReactFormApi<Record<string, unknown>, import("@tanstack/form-core").FormValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormAsyncValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormAsyncValidateOrFn<Record<string, unknown>> | undefined, T, import("@tanstack/form-core").FormAsyncValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormAsyncValidateOrFn<Record<string, unknown>> | undefined, unknown> & {
AppField: import("@tanstack/react-form").FieldComponent<Record<string, unknown>, import("@tanstack/form-core").FormValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormAsyncValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormAsyncValidateOrFn<Record<string, unknown>> | undefined, T, import("@tanstack/form-core").FormAsyncValidateOrFn<Record<string, unknown>> | undefined, import("@tanstack/form-core").FormAsyncValidateOrFn<Record<string, unknown>> | undefined, unknown, NoInfer<{
FieldComponent: typeof import("../../base-components/GenericFormField").default;
ArrayField: typeof import("../../base-components/ArrayField").ArrayFieldForArrayOfObjects;
ArrayFieldForArrayOfStrings: typeof import("../../base-components/ArrayField").ArrayFieldForArrayOfStrings;
ObjectWrapper: typeof import("../../base-components/ObjectWrapper").default;
ArrayWrapper: typeof import("../../base-components/ArrayWrapper").default;
GroupedFieldsWrapper: typeof import("../../base-components/GroupedFieldsWrapper").default;
ArrayInputFieldWrapper: typeof import("../../base-components/ArrayInputFieldWrapper").default;
}>>;
AppForm: import("react").ComponentType<import("react").PropsWithChildren>;
};
getFieldVisibilityState: (fieldPath: string, formValues: Record<string, unknown>) => VisibilityState;
isLoading: boolean;
all_errors: {
form: {
errors: (import("@tanstack/form-core").UnwrapFormValidateOrFn<T> | undefined)[];
errorMap: import("@tanstack/form-core").FormValidationErrorMap<undefined, undefined, undefined, undefined, undefined, import("@tanstack/form-core").UnwrapFormValidateOrFn<T>, undefined, undefined>;
};
fields: Record<string, {
errors: import("@tanstack/form-core").ValidationError[];
errorMap: import("@tanstack/form-core").ValidationErrorMap;
}>;
};
};
export {};