vue-formik
Version:
46 lines (45 loc) • 2.18 kB
TypeScript
import { UnwrapRef } from 'vue';
import { Paths, CustomValidationSchema, FormikOnSubmit, IResetOptions } from '../types';
import { ObjectSchema as YupSchema } from 'yup';
import { ObjectSchema as JoiSchema } from 'joi';
import { ZodType } from 'zod';
import { Struct } from 'superstruct';
declare const useFormik: <T extends object>({ initialValues, validationSchema, yupSchema, zodSchema, joiSchema, structSchema, onSubmit, validateOnMount, preventDefault, }: {
initialValues: T;
validateOnMount?: boolean;
preventDefault?: boolean;
onSubmit?: FormikOnSubmit<T>;
yupSchema?: YupSchema<T>;
joiSchema?: JoiSchema<T>;
zodSchema?: ZodType<T>;
structSchema?: Struct<T>;
validationSchema?: CustomValidationSchema<T>;
}) => {
values: import('vue').Reactive<T>;
errors: import('vue').Reactive<Partial<Record<keyof T, unknown>>>;
touched: import('vue').Reactive<Partial<Record<keyof T, unknown>>>;
isValid: import('vue').ComputedRef<boolean>;
isDirty: import('vue').ComputedRef<boolean>;
isSubmitting: import('vue').Ref<boolean, boolean>;
isValidating: import('vue').Ref<boolean, boolean>;
submitCount: import('vue').Ref<number, number>;
fieldHandlers: import('vue').ComputedRef<{
onBlur: (e: FocusEvent) => void;
onChange: (e: Event) => void;
}>;
setValues: (newValues: Partial<T>) => void;
setErrors: (newErrors: Partial<Record<keyof T, unknown>>) => void;
setTouched: (newTouched: Partial<Record<keyof T, unknown>>) => void;
setFieldValue: <K extends Paths<T>>(field: K, value: unknown) => void;
setFieldTouched: <K extends Paths<T>>(field: K, isTouched?: boolean) => void;
setSubmitting: (value: boolean) => void;
reset: ({ values: newValues, keepTouched }?: IResetOptions<T>) => void;
handleSubmit: (e?: Event) => void;
handleFieldBlur: (e: FocusEvent) => void;
handleFieldChange: (e: Event) => void;
hasFieldError: (field: string) => boolean;
getFieldError: (field: string) => unknown;
getFieldValue: <K extends keyof UnwrapRef<T>>(field: K | string) => unknown;
getFieldTouched: (field: string) => unknown;
};
export default useFormik;