@mobx-ecosystem/mobx-form
Version:
provides the ability to use forms with validation in MobX stores
52 lines (51 loc) • 1.78 kB
TypeScript
import { FieldEvents, FieldOptionsType, IField, MethodOptions, ResetType, ValueType } from './types';
import { Emitter } from 'mitt';
type FieldProps<T> = {
value: T;
onChange: (_: any, value: ValueType<T>) => void;
onBlur: (_: any) => void;
error?: string;
disabled?: boolean;
};
export declare class FieldService<T, P extends FieldProps<T> = FieldProps<T>> implements IField {
events?: Emitter<FieldEvents<T>>;
private _emptyValueType;
validate?: () => Promise<unknown>;
_serviceType: string;
private _initValue;
private _value;
private _error?;
private _disabled;
private _isBlurred;
options: FieldOptionsType<T>;
constructor(initValue: ValueType<T>, options?: FieldOptionsType<T>);
private emit;
get initValue(): ValueType<T>;
set initValue(initValue: ValueType<T>);
get value(): ValueType<T>;
set value(value: ValueType<T>);
get error(): string | undefined;
set error(error: string | undefined);
get disabled(): boolean;
set disabled(disabled: boolean);
get isValid(): boolean;
get isInit(): boolean;
get isBlurred(): boolean;
set isBlurred(isBlurred: boolean);
get isTouched(): boolean;
setDisabledFn: (disabledFn: FieldOptionsType<T>['disabledFn']) => void;
setOptions: (options: FieldOptionsType<T>) => void;
setInitValue: (initValue: ValueType<T>, { validate }?: MethodOptions) => void;
setValue: (value: ValueType<T>, { validate }?: MethodOptions) => void;
private onChange;
onBlur: (_: any) => void;
reset: (params?: ResetType) => void;
clear: () => void;
setAsInit: () => void;
touch: () => void;
disable: () => void;
enable: () => void;
get props(): P;
dispose: () => void;
}
export {};