apollo-form
Version:
Form state manager
54 lines (53 loc) • 2.53 kB
TypeScript
import { FormState, FieldValidator, FormErrors, FormManagerParams, FormTouches } from '../types';
import StateManipulator from './StateManipulator';
import BaseManager from '../managers/BaseManager';
declare class FormManager<S extends object> {
name: string;
protected manager: BaseManager<S>;
readonly manipulator: StateManipulator<S>;
protected customValidators: {
[key: string]: FieldValidator<any>;
};
protected validateHandler: FormManagerParams<S>['validate'];
protected validationSchema: FormManagerParams<S>['validationSchema'];
protected onSubmit: FormManagerParams<S>['onSubmit'];
protected onChange: FormManagerParams<S>['onChange'];
protected resetOnSubmit: FormManagerParams<S>['resetOnSubmit'];
protected formatState: FormManagerParams<S>['formatState'];
protected validateOnMount: FormManagerParams<S>['validateOnMount'];
protected initialState: S;
protected initialErrors: FormErrors<S>;
protected initialTouches: FormTouches<S>;
protected timeouts: number[];
constructor(props: FormManagerParams<S>);
set(state: FormState<S>): void;
get(): FormState<S>;
exists(): boolean;
useState<P = FormState<S>>(selector?: (state: FormState<S>) => P, dependencies?: any[]): P;
watch<P = FormState<S>>(selector: ((state: FormState<S>) => P) | null, handler: (next: P, prev: P) => void): () => void;
useValue(key: string): any;
useTouched(key: string): any;
useError(key: string): any;
setValues(values: S): void;
setErrors(errors: FormErrors<S>): void;
setTouches(touches: FormTouches<S>): void;
setFieldValue(key: string, newValue: any): FormState<S>;
setFieldError(key: string, error: string | undefined): void;
setFieldTouched(key: string, value: boolean): void;
setFieldFocused(key: string | null): void;
setIsValid(value: boolean): void;
setIsSubmitted(value: boolean): void;
setExistsChanges(value: boolean): void;
setLoading(value: boolean): void;
validate(allTouched?: boolean): void;
addFieldValidator<Value>(key: string, func: FieldValidator<Value>): void;
removeFieldValidator(key: string): void;
submit(): Promise<void | Error>;
reset(getState?: S | ((state: S) => S)): void;
responseMessage(message: string): void;
getInitialState(): S;
renewOnChange(handler: FormManagerParams<S>['onChange']): void;
renewOnSubmit(handler: FormManagerParams<S>['onSubmit']): void;
stopTimeouts(): void;
}
export default FormManager;