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