UNPKG

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
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>;