react-native-form-model
Version:
An easily testable and opinionated React Native form model builder written in pure JavaScript.
28 lines (27 loc) • 983 B
TypeScript
import { BehaviorSubject } from 'rxjs';
import { FormValidationError } from './FormError';
export declare type InputFieldValidationValue = InputFieldValidationResult | Error | string | boolean;
export interface InputFieldValidationResult {
valid: boolean;
error?: FormValidationError;
}
export interface FieldModelLike<View extends FieldViewLike = any> {
errors: BehaviorSubject<Error[]>;
viewRef?: ViewRef<View>;
}
export interface InputFieldModelLike<T> extends FieldModelLike {
value: BehaviorSubject<T>;
validate: () => InputFieldValidationResult;
skipNextFocus: boolean;
}
export interface FieldViewLike {
}
export interface InputFieldViewLike {
focus: () => void;
blur: () => void;
}
export interface ViewRef<T extends FieldViewLike = any> {
current?: T | null;
}
export declare function isFieldModelLike(value: any): value is FieldModelLike;
export declare function isInputFieldModelLike(value: any): value is InputFieldModelLike<any>;