| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | import { ReactNode, CSSProperties, MouseEvent } from 'react';import { BaseFileItem } from '@douyinfe/semi-foundation/upload/foundation';import { strings } from '@douyinfe/semi-foundation/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; // Current file name    data: Record<string, any>; // User-set props.data    file: FileItem;    fileInstance: File; // Original File Object which extends to the blob, the file object actually acquired by the browser (https://developer.mozilla.org/zh-CN/docs/Web/API/File)    onProgress: (event: { total: number; loaded: number }) => any; // The function that should be called during the upload process, the event needs to contain the total and loaded attributes    onError: (userXhr: { status?: number }, e: Event) => any; // Functions to call in case of upload error    onSuccess: (response: any, e: Event) => any; // The function that should be called after the upload is successful, the response is the request result after the upload is successful    withCredentials: boolean; // User-set props.with Credentials    action: string; // User-set props.action}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;}
 |