@quidone/react-native-wheel-picker
Version:
Picker is a UI component for selecting an item from a list of options.
70 lines • 2.6 kB
TypeScript
import type React from 'react';
import type { Faces } from './item/faces';
import type { Animated, StyleProp, TextStyle, ViewStyle } from 'react-native';
export type ListMethods = {
scrollToIndex: (params: {
index: number;
animated: boolean;
}) => void;
};
export type PickerItem<T> = {
value: T;
label?: string;
} & Record<string, any>;
export type KeyExtractor<ItemT extends PickerItem<any>> = (item: ItemT, index: number) => string;
export type RenderItemProps<ItemT extends PickerItem<any>> = {
item: ItemT;
index: number;
itemTextStyle: StyleProp<TextStyle> | undefined;
};
export type RenderItem<ItemT extends PickerItem<any>> = (props: RenderItemProps<ItemT>) => React.ReactElement | null;
export type RenderItemContainerProps<ItemT extends PickerItem<any>> = {
key?: string;
item: ItemT;
index: number;
faces: ReadonlyArray<Faces>;
renderItem: RenderItem<ItemT>;
itemTextStyle: StyleProp<TextStyle> | undefined;
};
export type RenderItemContainer<ItemT extends PickerItem<any>> = (props: RenderItemContainerProps<ItemT>) => React.ReactElement;
export type RenderPickerItem<ItemT extends PickerItem<any>> = (info: {
key?: string;
item: ItemT;
index: number;
}) => React.ReactElement;
export type RenderListProps<ItemT extends PickerItem<any>> = {
ref: React.RefObject<ListMethods>;
data: ReadonlyArray<ItemT>;
keyExtractor: KeyExtractor<ItemT>;
renderItem: RenderPickerItem<ItemT>;
itemHeight: number;
pickerHeight: number;
visibleItemCount: number;
readOnly: boolean;
initialIndex: number;
scrollOffset: Animated.Value;
onTouchStart: () => void;
onTouchEnd: () => void;
onTouchCancel: () => void;
onScrollEnd: () => void;
contentContainerStyle: StyleProp<ViewStyle> | undefined;
} & Record<string, any>;
export type RenderList<ItemT extends PickerItem<any>> = (props: RenderListProps<ItemT>) => React.ReactElement;
export type RenderOverlayProps = {
itemHeight: number;
pickerWidth: number | 'auto' | `${number}%`;
pickerHeight: number;
overlayItemStyle: StyleProp<ViewStyle> | undefined;
};
export type RenderOverlay = (props: RenderOverlayProps) => React.ReactElement | null;
export type ValueChangingEvent<ItemT> = {
item: ItemT;
index: number;
};
export type ValueChangedEvent<ItemT> = {
item: ItemT;
index: number;
};
export type OnValueChanging<ItemT> = (event: ValueChangingEvent<ItemT>) => void;
export type OnValueChanged<ItemT> = (event: ValueChangedEvent<ItemT>) => void;
//# sourceMappingURL=types.d.ts.map