zent
Version:
一套前端设计语言和基于React的实现
26 lines (25 loc) • 1.7 kB
TypeScript
import * as React from 'react';
import { II18nLocaleUpload } from '../../i18n';
import { IAbstractMultiUploadProps, IUploadChangeDetail, IUploadFileItem, IUploadItemProps } from '../types';
import AbstractUpload from './AbstractUpload';
export interface IAbstractMultiUploadState<UPLOAD_ITEM extends IUploadFileItem> {
fileList: Array<UPLOAD_ITEM>;
}
declare abstract class AbstractMultiUpload<UPLOAD_ITEM extends IUploadFileItem, ON_UPLOAD_SUCCESS_RETURN, UPLOAD_ITEM_COMP_PROPS extends IUploadItemProps<UPLOAD_ITEM>, P extends IAbstractMultiUploadProps<UPLOAD_ITEM, ON_UPLOAD_SUCCESS_RETURN, UPLOAD_ITEM_COMP_PROPS>> extends AbstractUpload<UPLOAD_ITEM, ON_UPLOAD_SUCCESS_RETURN, UPLOAD_ITEM_COMP_PROPS, P, IAbstractMultiUploadState<UPLOAD_ITEM>> {
constructor(props: P);
static getDerivedStateFromProps(nextProps: IAbstractMultiUploadProps<IUploadFileItem, any, IUploadItemProps<IUploadFileItem>>): {
fileList: IUploadFileItem[];
};
get isControlled(): boolean;
get fileList(): UPLOAD_ITEM[];
get remainAmount(): number;
getUploadItem(id: string): UPLOAD_ITEM | null;
updateFileList: (list: UPLOAD_ITEM[], detail?: IUploadChangeDetail<UPLOAD_ITEM>, cb?: () => void) => void;
deleteUploadItem: (deleteItem: UPLOAD_ITEM) => void;
retryUploadItem: (retryItem: UPLOAD_ITEM) => void;
updateUploadItem: (updateItemId: string, overrideProps: Partial<UPLOAD_ITEM>) => void;
onTriggerUploadFile: (file: File) => Promise<void>;
protected abstract createNewUploadFileItem(file: File): UPLOAD_ITEM | Promise<UPLOAD_ITEM>;
protected abstract renderUploadList(i18n: II18nLocaleUpload): React.ReactNode;
}
export default AbstractMultiUpload;