chowa
Version:
UI component library based on React
94 lines (93 loc) • 3.44 kB
TypeScript
/**
* @license chowa v1.1.3
*
* Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import * as React from 'react';
import * as PropTypes from 'prop-types';
import { StorageFile, UploadFile } from './tool';
export interface UploadProps {
className?: string;
style?: React.CSSProperties;
mode?: 'select' | 'drag';
accept?: string;
exts?: string[];
size?: number;
action: string;
multiple?: boolean;
capture?: boolean;
disabled?: boolean;
directory?: boolean;
headers?: object;
name?: string;
data?: object;
defaultValue?: StorageFile[];
value?: StorageFile[];
onChange?: (storageFiles: StorageFile[]) => void;
onBeforeUpload?: (file: File) => Promise<any> | boolean;
onProgress?: (file: File, e: ProgressEvent) => void;
onSuccess?: (file: File, e: XMLHttpRequest) => void;
onError?: (file: File, e: ProgressEvent) => void;
onRemove?: (uploadFile: UploadFile) => void;
onExtError?: (file: File) => void;
onSizeError?: (file: File) => void;
formatter?: (uploadFile: UploadFile) => React.ReactNode;
showUploadList?: boolean;
}
export interface UploadState {
uploadFiles: UploadFile[];
}
declare class Upload extends React.PureComponent<UploadProps, UploadState> {
static propTypes: {
className: PropTypes.Requireable<string>;
style: PropTypes.Requireable<object>;
mode: PropTypes.Requireable<string>;
accept: PropTypes.Validator<string>;
exts: PropTypes.Requireable<any[]>;
size: PropTypes.Requireable<number>;
action: PropTypes.Requireable<string>;
capture: PropTypes.Requireable<boolean>;
multiple: PropTypes.Requireable<boolean>;
disabled: PropTypes.Requireable<boolean>;
directory: PropTypes.Requireable<boolean>;
headers: PropTypes.Requireable<object>;
name: PropTypes.Requireable<string>;
data: PropTypes.Requireable<object>;
defaultValue: PropTypes.Requireable<any[]>;
value: PropTypes.Requireable<any[]>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
onBeforeUpload: PropTypes.Requireable<(...args: any[]) => any>;
onProgress: PropTypes.Requireable<(...args: any[]) => any>;
onSuccess: PropTypes.Requireable<(...args: any[]) => any>;
onRemove: PropTypes.Requireable<(...args: any[]) => any>;
onError: PropTypes.Requireable<(...args: any[]) => any>;
onExtError: PropTypes.Requireable<(...args: any[]) => any>;
onSizeError: PropTypes.Requireable<(...args: any[]) => any>;
formatter: PropTypes.Requireable<(...args: any[]) => any>;
showUploadList: PropTypes.Requireable<boolean>;
};
static defaultProps: {
name: string;
mode: string;
capture: boolean;
multiple: boolean;
accept: string;
directory: boolean;
showUploadList: boolean;
};
private InputEle;
private request;
constructor(props: UploadProps);
componentDidUpdate(preProps: UploadProps): void;
componentWillUnmount(): void;
triggerChange(): void;
private chooseFile;
private onInputChangeHandler;
private appendUploadFile;
private removeFile;
render(): JSX.Element;
}
export default Upload;