UNPKG

@fruits-chain/react-native-xiaoshu

Version:
79 lines (78 loc) 2.09 kB
import type React from 'react'; import type { PopupPropsCommon } from '../popup/interface'; export declare type OptionData<T> = { value: T; label: string; index?: string; [index: string]: any; }; export declare type RequestResponseData<T> = { placeholder?: string; options: OptionData<T>[]; }; export interface StepSelectorProps<T> extends PopupPropsCommon { /** * 标题 * @default '请选择' */ title?: React.ReactNode; /** * 顶部安全高度 * @default safeAreaInsets.top */ safeAreaInsetTop?: number; /** * 是否在显示弹层时才渲染节点 * @default true */ lazyRender?: boolean; /** * 是否显示圆角 * @default true */ round?: boolean; value?: T[]; defaultValue?: T[]; onChange?: (v: T[], o: OptionData<T>[], isEnd?: boolean) => void; /** * 点击关闭按钮 */ onPressClose?: () => void; /** * 请求数据 */ request: (parentId: T, index: number) => Promise<RequestResponseData<T>>; } export interface StepSelectorLineProps { /** * 当前的索引 */ index: number; /** * 总数量 */ total: number; /** * 是否是激活的样子 * @default false */ active?: boolean; } export interface StepSelectorMethodProps<T> extends Omit<StepSelectorProps<T>, 'value' | 'onChange' | 'onPressClose' | 'visible' | 'onRequestClose'> { /** * 当选择到最末端时触发,返回 false 可阻止关闭,支持返回 Promise */ beforeClose?: (v: T[], o: OptionData<T>[], isEnd?: boolean) => boolean | Promise<boolean>; /** * 类似确定的回调,当选择到最末端时触发,部分业务需要把选项其他值提取出来 */ onConfirm?: (v: T[], o: OptionData<T>[], isEnd?: boolean) => void; /** * 取消 */ onCancel?: () => void; } export interface StepSelectorInstance { <T>(p: StepSelectorMethodProps<T>): Promise<T[]>; Component: <T>(p: StepSelectorProps<T>) => React.ReactElement; }