@douyinfe/semi-ui
Version:
A modern, comprehensive, flexible design system and UI library. Connect DesignOps & DevOps. Quickly build beautiful React apps. Maintained by Douyin-fe team.
66 lines (65 loc) • 2.06 kB
TypeScript
import { ReactNode, CSSProperties, MouseEvent } from 'react';
import { BaseFileItem } from '@douyinfe/semi-foundation/lib/cjs/upload/foundation';
import { strings } from '@douyinfe/semi-foundation/lib/cjs/upload/constants';
import { ArrayElement } from '../_base/base';
export type PromptPositionType = ArrayElement<typeof strings.PROMPT_POSITION>;
export type UploadListType = ArrayElement<typeof strings.LIST_TYPE>;
export interface BeforeUploadProps {
file: FileItem;
fileList: Array<FileItem>;
}
export interface AfterUploadProps {
file: FileItem;
fileList: Array<FileItem>;
response: any;
}
export interface OnChangeProps {
fileList: Array<FileItem>;
currentFile: FileItem;
}
export interface customRequestArgs {
fileName: string;
data: Record<string, any>;
file: FileItem;
fileInstance: File;
onProgress: (e?: {
total: number;
loaded: number;
}) => any;
onError: (userXhr: {
status?: number;
}, e?: Event) => any;
onSuccess: (response: any, e?: Event) => any;
withCredentials: boolean;
action: string;
}
export interface CustomError extends Error {
status: number;
method: string;
url: string;
}
export interface FileItem extends BaseFileItem {
validateMessage?: ReactNode;
}
export interface RenderFileItemProps extends FileItem {
index?: number;
previewFile?: (fileItem: RenderFileItemProps) => ReactNode;
listType: UploadListType;
onRemove: () => void;
onRetry: () => void;
onReplace: () => void;
key: string;
showPicInfo?: boolean;
renderPicInfo?: (renderFileItemProps: RenderFileItemProps) => ReactNode;
renderPicPreviewIcon?: (renderFileItemProps: RenderFileItemProps) => ReactNode;
renderFileOperation?: (fileItem: RenderFileItemProps) => ReactNode;
showRetry?: boolean;
showReplace?: boolean;
style?: CSSProperties;
disabled: boolean;
onPreviewClick: () => void;
}
export interface RenderPictureCloseProps {
className: string;
remove: (e: MouseEvent) => void;
}