antd-mobile
Version:
<div align="center">
46 lines (45 loc) • 1.75 kB
TypeScript
import React, { FC, InputHTMLAttributes } from 'react';
import { NativeProps } from '../../utils/native-props';
import type { ImageProps } from '../image';
import { GridProps } from '../grid';
export declare type TaskStatus = 'pending' | 'fail' | 'success';
export interface ImageUploadItem {
key?: string | number;
url: string;
thumbnailUrl?: string;
extra?: any;
}
declare type Task = {
id: number;
url?: string;
file: File;
status: TaskStatus;
};
export declare type UploadTask = Pick<Task, 'id' | 'status'>;
export declare type ImageUploaderProps = {
defaultValue?: ImageUploadItem[];
value?: ImageUploadItem[];
columns?: GridProps['columns'];
onChange?: (items: ImageUploadItem[]) => void;
onUploadQueueChange?: (tasks: UploadTask[]) => void;
accept?: string;
multiple?: boolean;
maxCount?: number;
onCountExceed?: (exceed: number) => void;
disableUpload?: boolean;
showUpload?: boolean;
deletable?: boolean;
deleteIcon?: React.ReactNode;
capture?: InputHTMLAttributes<unknown>['capture'];
onPreview?: (index: number, item: ImageUploadItem) => void;
beforeUpload?: (file: File, files: File[]) => Promise<File | null> | File | null;
upload: (file: File) => Promise<ImageUploadItem>;
onDelete?: (item: ImageUploadItem) => boolean | Promise<boolean> | void;
preview?: boolean;
showFailed?: boolean;
imageFit?: ImageProps['fit'];
children?: React.ReactNode;
renderItem?: (originNode: React.ReactElement, file: ImageUploadItem, fileList: ImageUploadItem[]) => React.ReactNode;
} & NativeProps<'--cell-size' | '--gap' | '--gap-vertical' | '--gap-horizontal'>;
export declare const ImageUploader: FC<ImageUploaderProps>;
export {};