@fruits-chain/react-native-xiaoshu
Version:
🌈 React Native UI library
143 lines (120 loc) • 2.19 kB
text/typescript
import type React from 'react'
import type { ImageSourcePropType } from 'react-native'
export 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
}