@nutui/nutui-react
Version:
京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序
83 lines (82 loc) • 2.74 kB
TypeScript
import { default as React } from 'react';
import { default as Taro } from '@tarojs/taro';
import { UploadOptions } from './upload';
import { BasicComponent } from '../../utils/typings';
import { FileItem } from './file-item';
interface sizeType {
/** 原图 */
original: string;
/** compressed */
compressed: string;
}
interface sourceType {
/** 从相册选图 */
album: string;
/** 使用相机 */
camera: string;
}
interface mediaType {
/** 只能拍摄图片或从相册选择图片 */
image: string;
/** 只能拍摄视频或从相册选择视频 */
video: string;
}
export interface UploaderProps extends BasicComponent {
url: string;
maxCount: string | number;
sizeType: (keyof sizeType)[];
sourceType: (keyof sourceType)[];
mediaType: (keyof mediaType)[];
camera: string;
maxFileSize: number;
defaultValue?: FileItem[];
value?: FileItem[];
previewType: 'picture' | 'list';
fit: 'contain' | 'cover' | 'fill' | 'none' | 'scale-down';
uploadIcon?: React.ReactNode;
uploadLabel?: React.ReactNode;
name: string;
accept: string;
disabled: boolean;
autoUpload: boolean;
multiple: boolean;
timeout: number;
data: any;
method: string;
xhrState: number | string;
headers: any;
preview: boolean;
deletable: boolean;
className: string;
previewUrl?: string;
maxDuration: number;
style: React.CSSProperties;
onStart?: (option: UploadOptions) => void;
onDelete?: (file: FileItem, files: FileItem[]) => void;
onSuccess?: (param: {
responseText: XMLHttpRequest['responseText'];
option: UploadOptions;
files: FileItem[];
}) => void;
onProgress?: (param: {
e: ProgressEvent<XMLHttpRequestEventTarget>;
option: UploadOptions;
percentage: number | string;
}) => void;
onFailure?: (param: {
responseText: XMLHttpRequest['responseText'];
option: UploadOptions;
files: FileItem[];
}) => void;
onUpdate?: (files: FileItem[]) => void;
onOversize?: (files: Taro.chooseImage.ImageFile[] | Taro.chooseMedia.ChooseMedia[] | any) => void;
onChange?: (files: FileItem[]) => void;
beforeUpload?: (files: Taro.chooseImage.ImageFile[] | Taro.chooseMedia.ChooseMedia[] | any) => Promise<File[] | boolean>;
beforeXhrUpload?: (xhr: XMLHttpRequest, options: any) => void;
beforeDelete?: (file: FileItem, files: FileItem[]) => boolean;
onFileItemClick?: (file: FileItem, index: number) => void;
}
export declare const Uploader: React.ForwardRefExoticComponent<Partial<UploaderProps> & {
children?: React.ReactNode | undefined;
} & React.RefAttributes<unknown>>;
export {};