UNPKG

react-native-form-model

Version:

An easily testable and opinionated React Native form model builder written in pure JavaScript.

34 lines (33 loc) 1.3 kB
import { Observable } from 'rxjs'; import InputFieldModel, { ParsedInputFieldModelOptions } from './InputFieldModel'; export declare type OptionInputFieldMode = 'segmented' | 'dropdown' | 'dialog'; export declare type OptionInputClearButtonMode = 'auto' | 'always' | 'never'; export interface OptionInputFieldModelOptions<T> extends ParsedInputFieldModelOptions<T, number> { mode: OptionInputFieldMode; possibleValues: T[]; /** * Set this when values are not * supported by `Array#indexOf` method. */ serializer?: (value: T | undefined) => any; optional?: boolean; prompt?: string; /** * When to show the clear button. * * Supported with `segmented` mode only. */ clearButtonMode?: OptionInputClearButtonMode; } export default class OptionInputFieldModel<T = string> extends InputFieldModel<T, number> implements OptionInputFieldModelOptions<T> { mode: OptionInputFieldMode; possibleValues: T[]; serializer?: OptionInputFieldModelOptions<T>['serializer']; optional: boolean; prompt?: string; clearButtonMode: OptionInputClearButtonMode; constructor(options: OptionInputFieldModelOptions<T>); indexOf(value: T): number; selectedIndex(): Observable<number>; selectIndex(index: number): void; }