react-native-form-model
Version:
An easily testable and opinionated React Native form model builder written in pure JavaScript.
39 lines (35 loc) • 1.18 kB
text/typescript
import { ButtonProps } from '../../components/Button';
import { MaybeObservable } from '../../util/reactUtil';
import FieldModel, { FieldModelOptions } from './FieldModel';
export interface ButtonFieldModelOptions extends FieldModelOptions {
title: MaybeObservable<string>;
mode?: ButtonProps['mode'];
disabled?: boolean;
compact?: boolean;
numberOfLines?: number;
loading?: MaybeObservable<boolean>;
onPress: () => any;
}
export default class ButtonFieldModel
extends FieldModel
implements ButtonFieldModelOptions
{
title: MaybeObservable<string>;
mode: ButtonProps['mode'];
disabled?: boolean;
compact: boolean;
numberOfLines?: number;
loading?: MaybeObservable<boolean>;
onPress: () => any;
constructor(options: ButtonFieldModelOptions) {
super(options);
const { mode = 'contained', compact = true } = options;
this.title = options.title;
this.mode = mode;
this.disabled = options.disabled;
this.compact = compact;
this.numberOfLines = options.numberOfLines;
this.loading = options.loading;
this.onPress = options.onPress;
}
}