UNPKG

@devfamily/admiral

Version:

Admiral is a frontend framework for creating back office using React. It provides out-of-the-box components and tools that make developing an admin interface easy and fast.

111 lines (110 loc) 3.95 kB
import React from 'react'; import { RcFile, UploadRequestOption as RcCustomRequestOptions, UploadProps as RcUploadProps } from 'rc-upload/lib/interface'; import { OnDragEndResponder } from 'react-beautiful-dnd'; export type { RcFile }; export declare type UploadFileStatus = 'error' | 'removed' | 'uploading'; export declare type UploadFileError = { message: string; }; export interface UploadFile { uid: string; size?: number; name: string; fileName?: string; lastModified?: number; lastModifiedDate?: Date; url?: string; status?: UploadFileStatus; thumbUrl?: string; error?: UploadFileError; type?: string; preview?: string; } export interface UploadChangeParam<T = UploadFile> { file: T; fileList: UploadFile[]; } export interface ShowUploadListInterface { showRemoveIcon?: boolean; showPreviewIcon?: boolean; } export interface UploadLocale { removeFile?: string; previewFile?: string; downloadFile?: string; uploadError?: string; clickToUpload?: string; pictureCardUpload?: string; } export declare type UploadType = 'drag' | 'select'; export declare type UploadListType = 'text' | 'picture' | 'picture-card'; export declare type ItemRender<T = any> = (originNode: React.ReactElement, file: UploadFile, fileList: Array<UploadFile>, actions: { remove: () => void; }) => React.ReactNode; declare type BeforeUploadValueType = void | boolean | string | Blob | File; export interface UploadProps<T = any> extends Pick<RcUploadProps, 'capture'> { type?: UploadType; name?: string; fileList?: Array<UploadFile>; directory?: boolean; data?: Record<string, unknown> | ((file: UploadFile) => Record<string, unknown> | Promise<Record<string, unknown>>); showUploadList?: boolean | ShowUploadListInterface; multiple?: boolean; accept?: string; beforeUpload?: (file: RcFile, FileList: RcFile[]) => BeforeUploadValueType | Promise<BeforeUploadValueType>; onChange?: (info: UploadChangeParam<UploadFile>) => void; onPreview?: (file: UploadFile) => void; onDownload?: (file: UploadFile) => void; showDownloadIcon?: boolean; onDrop?: (event: React.DragEvent<HTMLDivElement>) => void; listType?: UploadListType; className?: string; style?: React.CSSProperties; disabled?: boolean; prefixCls?: string; customRequest?: (options: RcCustomRequestOptions) => void; openFileDialogOnClick?: boolean; locale?: UploadLocale; id?: string; isImageUrl?: (file: UploadFile) => boolean; itemRender?: ItemRender<T>; /** Config max count of `fileList`. Will replace current one when `maxCount` is 1 */ maxCount?: number; isDraggable?: boolean; } export interface UploadState<T = any> { fileList: UploadFile[]; dragState: string; } declare type PreviewFileHandler = (file: File | Blob) => PromiseLike<string>; export interface UploadListProps<T = any> { listType?: UploadListType; onRemove?: (file: UploadFile) => void | boolean; onPreview?: (file: UploadFile) => void | boolean; onDownload?: (file: UploadFile) => void; onDragEnd?: OnDragEndResponder; items?: Array<UploadFile>; showRemoveIcon?: boolean; showPreviewIcon?: boolean; showDownloadIcon?: boolean; locale: UploadLocale; isImageUrl?: (file: UploadFile) => boolean; itemRender?: ItemRender<T>; previewFile?: PreviewFileHandler; appendButton?: React.ReactNode; isDraggable?: boolean; } export interface ListItemProps { locale: UploadLocale; file: UploadFile; items: UploadFile[]; listType?: UploadListType; isImgUrl?: (file: UploadFile) => boolean; showRemoveIcon?: boolean; showPreviewIcon?: boolean; showDownloadIcon?: boolean; itemRender?: ItemRender; onClose: (file: UploadFile) => void; onPreview: (e: React.MouseEvent, file: UploadFile) => void; onDownload?: (file: UploadFile) => void; }