react-native-ui-lib
Version:
<p align="center"> <img src="https://user-images.githubusercontent.com/1780255/105469025-56759000-5ca0-11eb-993d-3568c1fd54f4.png" height="250px" style="display:block"/> </p> <p align="center">UI Toolset & Components Library for React Native</p> <p a
74 lines (64 loc) • 2.54 kB
TypeScript
import {ReactElement} from 'react';
import {FlatListProps, GestureResponderEvent, LayoutChangeEvent, StyleProp, TextStyle} from 'react-native';
import {BaseComponent} from '../commons';
import {TextFieldProps} from './Inputs';
import {TopBarProps} from './Modal';
import {ColorsModifiers} from '../modifiers';
export type PickerItemLabeledValue = { value?: any, label?: string };
export type PickerItemValue =
| object
| string
| number
| PickerItemLabeledValue
| PickerItemLabeledValue[];
export type PickerItemRenderItemFunc = (
value: PickerItemValue | undefined,
props: PickerItemProps,
label: string
) => ReactElement | ReactElement[];
export interface PickerItemProps {
label?: string;
labelStyle?: StyleProp<TextStyle>;
value?: PickerItemValue;
getItemLabel?: (value?: PickerItemValue) => string;
isSelected?: boolean;
disabled?: boolean;
renderItem?: PickerItemRenderItemFunc;
onPress?: (event: GestureResponderEvent) => void;
onSelectedLayout?: (event: LayoutChangeEvent) => void;
testID?: string;
}
export type PickerMode = 'SINGLE' | 'MULTI';
export interface PickerSearchStyle {
color?: string;
placeholderTextColor?: string;
selectionColor?: string;
}
export type PickerListProps = Omit<FlatListProps<any>, 'data' | 'renderItem' | 'keyExtractor'>;
export interface PickerProps extends Omit<TextFieldProps, 'value'> {
value?: PickerItemValue;
onChange?: (value: PickerItemValue) => void;
mode?: PickerMode;
enableModalBlur?: boolean;
renderPicker?: (value?: PickerItemValue, label?: string) => ReactElement | ReactElement[];
renderItem?: PickerItemRenderItemFunc;
renderCustomModal?: (modalProps: object) => ReactElement | ReactElement[];
customPickerProps?: object;
onPress?: (event: GestureResponderEvent) => void;
getItemValue?: (value?: PickerItemValue) => string;
getLabel?: (value?: PickerItemValue) => string;
topBarProps?: TopBarProps;
showSearch?: boolean;
searchStyle?: PickerSearchStyle;
searchPlaceholder?: string;
onSearchChange?: (searchValue: string) => void;
renderCustomSearch?: (props: PickerProps) => ReactElement | ReactElement[];
useNativePicker?: boolean;
renderNativePicker?: (props: PickerProps) => ReactElement | ReactElement[];
listProps?: PickerListProps;
}
export class Picker extends BaseComponent<PickerProps & ColorsModifiers> {}
export namespace Picker {
export class Item extends BaseComponent<PickerItemProps> {}
export function extractPickerItems(props: any): [{value: string, label: string}]
}