@fruits-chain/react-native-xiaoshu
Version:
🌈 React Native UI library
107 lines (106 loc) • 2.34 kB
TypeScript
import type React from 'react';
import type { ImageSourcePropType } from 'react-native';
export declare type UploaderValue = {
/**
* 当前资源的唯一标识
*/
key: string;
/**
* 文件路径
*/
filepath: string;
/**
* 文件状态
* @default 'done'
*/
status?: 'loading' | 'done' | 'error';
[index: string]: any;
};
export interface UploaderProps<T> {
/**
* 图片数组
*/
list: T[];
/**
* 文件上传数量限制
* @default Number.MAX_SAFE_INTEGER
*/
maxCount?: number;
/**
* 图片展示组件
* @default Image
*/
imageComponent?: React.ComponentType<{
source: ImageSourcePropType;
[index: string]: any;
}>;
/**
* 是否展示删除按钮
* @default true
*/
deletable?: boolean;
/**
* 是否展示上传区域
* @default true
*/
showUpload?: boolean;
/**
* 上传区域文字提示
* @default '图片'
*/
uploadText?: string;
/**
* 上传图标
*/
uploadIcon?: React.ReactNode;
/**
* 点击选择按钮
*/
onPressUpload?: () => void;
/**
* 缩略图尺寸
* @default 80
*/
imageSize?: number;
/**
* 图片之间的间距
* @default uploader_image_gap
*/
imageGap?: number;
/**
* 点击某一个图片
*/
onPressImage?: (current: UploaderValue, index: number, list: UploaderValue[]) => void;
/**
* 点击删除文件
*/
onPressDelete?: (current: UploaderValue, index: number, list: UploaderValue[]) => void;
/**
* 点击上传出错的文件
*/
onPressError?: (current: UploaderValue, index: number, list: UploaderValue[]) => void;
}
export interface UploaderImageProps extends Partial<Pick<UploaderValue, 'filepath' | 'status'>>, Pick<UploaderProps<UploaderValue>, 'imageComponent' | 'deletable'> {
/**
* 缩略图尺寸
* @default 80
*/
size?: number;
/**
* 图片之间的间距
* @default uploader_image_gap
*/
gap?: number;
/**
* 点击图片
*/
onPress?: () => void;
/**
* 点击删除图片
*/
onPressDelete?: () => void;
/**
* 是否是上传按钮
*/
isUpload?: boolean;
}