@fruits-chain/react-native-xiaoshu
Version:
React Native UI library
70 lines (69 loc) • 1.82 kB
TypeScript
import type React from 'react';
import type { PopupPropsCommon } from '../popup/interface';
export declare type SelectorValue = number | string;
export declare type SelectorOption = {
/**
* 显示的文案
*/
label: string;
/**
* 唯一标识
*/
value: SelectorValue;
/**
* 是否禁用
* @default false
*/
disabled?: boolean;
};
export interface SelectorProps extends Omit<PopupPropsCommon, 'closeOnPressOverlay' | 'onPressOverlay'> {
/**
* 点击遮罩层关闭
* @default true
*/
closeOnPressOverlay?: boolean;
/**
* 标题
*/
title: React.ReactNode;
/**
* 是否显示关闭图标
* @default true
*/
showClose?: boolean;
/**
* 是否多选
* @default false
*/
multiple?: boolean;
/**
* 当前选中的值
*/
value?: SelectorValue[] | SelectorValue;
/**
* 当前的选项
*/
options: SelectorOption[];
/**
* 选择后的回调
*/
onChange: (value: SelectorValue[] | SelectorValue, options: SelectorOption | SelectorOption[]) => void;
/**
* 当值变化的时候立即响应
*/
onChangeImmediate?: (v: SelectorValue[] | SelectorValue) => SelectorValue[] | SelectorValue;
/**
* 顶部安全高度
* @default safeAreaInsets.top
*/
safeAreaInsetTop?: number;
}
export interface SelectorMethodProps extends Omit<SelectorProps, 'visible'> {
}
export interface SelectorOptions extends Omit<SelectorMethodProps, 'onChange'> {
onChange?: (value: SelectorValue[] | SelectorValue, options: SelectorOption | SelectorOption[]) => void;
}
export interface SelectorInstance {
(p: SelectorOptions): Promise<SelectorValue[] | SelectorValue>;
Component: React.FC<SelectorProps>;
}