ez-formbecauseican
Version:
Forms made Ez
69 lines (68 loc) • 2.24 kB
TypeScript
/// <reference types="react" />
export interface StringTMap<T> {
[key: string]: T;
}
export declare type VisibleIf = (values: object) => boolean;
export declare type StateSetterCallback = (keyName: string, val: any) => void;
export declare type Track = (keyName: string, val: any, index: number | string) => void;
export declare type ValidateField = (values: any, index: number) => void;
export declare type OnBlurEvent = (e: React.ChangeEvent<HTMLInputElement>, keyName: string, index: number) => void;
export declare type OnChangeEvent = (e: React.ChangeEvent<HTMLInputElement>, keyName: string, index: number) => void;
export interface SelectOptions {
label: string;
value: any;
}
export interface SchemaValues {
visibleIf?: VisibleIf;
track?: Track;
validate?: ValidateField;
customComponent?: any;
type?: string;
options?: SelectOptions[];
groupClassName?: string;
label?: string;
initialValue?: string;
placeholder?: string;
tracked?: boolean;
prependHtml?: any;
appendHtml?: any;
required?: boolean | Function;
functionalComponent?: any;
viewModeClass?: string;
viewModeComponent?: Function;
featureFlag?: string;
onChange?: (e: React.ChangeEvent<HTMLInputElement>, value: any, values: object) => void;
onBlur?: (e: React.ChangeEvent<HTMLInputElement>, value: any, values: object) => void;
onSubmit?: (value: any, values: object) => void;
[key: string]: any;
}
export declare type EzFormSchema = {
[key: string]: SchemaValues;
};
export declare type EzFormProps = {
children: any;
schema: any;
schemaModifier?: any;
onSubmit?: (values: object) => void;
onBlur?: (values: object) => void;
onChange?: (values: object) => void;
initialValues?: object;
validateInitialValues?: boolean;
inputsOnly?: boolean;
showSubmitButton?: boolean;
disabled?: boolean;
viewMode?: boolean;
className?: string;
multiForm?: boolean;
formComponent?: any;
errorClass?: string;
featureFlags?: object;
viewModeDefaultText?: string;
};
export declare type EzFormState = {
formInited: boolean;
schema: any;
fieldValues: any;
errors: any;
hasErrors: boolean;
};