vuestic-ui
Version:
Vue 3 UI Framework
35 lines (34 loc) • 1.19 kB
TypeScript
import { ComputedRef, Ref, UnwrapRef } from 'vue';
export type FormFiled<Name extends string = string> = {
name: Ref<Name | undefined>;
value?: Ref<unknown>;
isValid: Ref<boolean>;
isLoading: Ref<boolean>;
isDirty: Ref<boolean>;
isTouched: Ref<boolean>;
errorMessages: Ref<string[]>;
validate: () => boolean;
validateAsync: () => Promise<boolean>;
reset: () => void;
resetValidation: () => void;
focus: () => void;
};
export type Form<Names extends string = string> = {
fields: ComputedRef<UnwrapRef<FormFiled<Names>[]>>;
fieldsNamed: ComputedRef<Record<Names, UnwrapRef<FormFiled>>>;
fieldNames: ComputedRef<Names[]>;
formData: ComputedRef<Record<Names, unknown>>;
isValid: ComputedRef<boolean>;
isDirty: Ref<boolean>;
isTouched: Ref<boolean>;
isLoading: ComputedRef<boolean>;
errorMessages: ComputedRef<string[]>;
errorMessagesNamed: ComputedRef<Record<Names, string[]>>;
immediate: ComputedRef<boolean>;
validate: () => boolean;
validateAsync: () => Promise<boolean>;
reset: () => void;
resetValidation: () => void;
focus: () => void;
focusInvalidField: () => void;
};