///
export interface AdapterFile {
/**
* 文件 url
* @en Url of file
*/
url?: string;
/**
* 文件大小
* @en File size
*/
size: number;
/**
* 文件名
* @en File name
*/
name: string;
}
export interface SelectCallback {
/**
* 文件列表
* @en File list
*/
files: AdapterFile[];
}
export interface CommonFileItem {
/**
* 文件地址
* @en file Url
*/
url?: string;
/**
* 文件
* @en File
*/
file?: File;
/**
* 文件状态
* @en Image Status
* @default 以文件自身加载状态而定
* @default_en According to inner status of the image
*/
status?: 'loaded' | 'loading' | 'error';
}
export interface UploadCommonProps {
/**
* 上传方法
* @en Upload function
*/
upload?: (file: FileItem) => Promise;
/**
* 已选文件列表发生变化
* @en The list of selected files changes
*/
onChange?: (fileList: FileItem[]) => void;
/**
* 文件大小限制,单位为K
* @en File size limit, in K
*/
maxSize?: number;
/**
* 文件超过限制大小
* @en Image exceeds size limit
*/
onMaxSizeExceed?: (file: File) => void;
/**
* 最多选择文件数,超出数量自动隐藏上传按钮,0表示不做限制
* @en Max pictures can choose, 0 means no restriction
* @default 0
*/
limit?: number;
/**
* 选择文件数超过限制
* @en The number of pictures exceeds the limit
*/
onLimitExceed?: (files: File[]) => void;
/**
* 已选择文件列表
* @en Selected files list
*/
files: FileItem[];
/**
* 删除点击事件
* @en Delete area click event
*/
onDeleteClick?: (index: number) => void;
/**
* 上传文件点击事件
* @en Upload area click event
*/
onUploadClick?: () => void;
/**
* 文件选择适配器
* @en Select adaptor
*/
selectAdapter?: () => Promise;
/**
* 文件点击
* @en click event
*/
onClick?: (e: React.MouseEvent, file: FileItem, index: number) => void;
/**
* 文件长按事件
* @en long press event
*/
onLongPress?: (e: React.TouchEvent, file: FileItem, index: number) => void;
}