apollo-form
Version:
Form state manager
29 lines (28 loc) • 1.53 kB
TypeScript
import { FormState, FieldValidator, FormErrors, FormManagerParams, FormTouches } from '../types';
declare class StateManipulator<S extends object> {
protected validateHandler: FormManagerParams<S>['validate'];
protected validationSchema: FormManagerParams<S>['validationSchema'];
protected customValidators: {
[key: string]: FieldValidator<any>;
};
protected initialState: S;
protected initialErrors: FormErrors<S>;
protected initialTouches: FormTouches<S>;
protected validateOnMount: FormManagerParams<S>['validateOnMount'];
protected defaultState: Omit<FormState<S>, 'values'>;
constructor(props: Omit<FormManagerParams<S>, 'initialErrors' | 'initialTouches'> & Required<Pick<FormManagerParams<S>, 'initialErrors' | 'initialTouches'>> & {
customValidators: {
[key: string]: FieldValidator<any>;
};
defaultState: Omit<FormState<S>, 'values'>;
});
setValue(state: FormState<S>, key: string, newValue: any): FormState<S>;
setError(state: FormState<S>, key: string, value: string | undefined): FormState<S>;
setTouched(state: FormState<S>, key: string, value: boolean): FormState<S>;
getValue(state: FormState<S>, key: string): any;
getError(state: FormState<S>, key: string): any;
getTouched(state: FormState<S>, key: string): any;
validate(state: FormState<S>, allTouched?: boolean): FormState<S>;
reset(state: FormState<S>, getState?: S | ((state: S) => S)): FormState<S>;
}
export default StateManipulator;