upup-react-file-uploader
Version:
176 lines (172 loc) • 5.45 kB
TypeScript
import React, { FC } from 'react';
declare enum UploadAdapter {
INTERNAL = "INTERNAL",
GOOGLE_DRIVE = "GOOGLE_DRIVE",
ONE_DRIVE = "ONE_DRIVE",
LINK = "LINK",
CAMERA = "CAMERA"
}
type GoogleDriveConfigs = {
google_api_key: string;
google_app_id: string;
google_client_id: string;
};
type OneDriveConfigs = {
onedrive_client_id: string;
redirectUri?: string;
};
declare enum UpupProvider {
AWS = "aws",
Azure = "azure",
BackBlaze = "backblaze",
DigitalOcean = "digitalocean"
}
type MaxFileSizeObject = {
size: number;
unit: 'B' | 'KB' | 'MB' | 'GB' | 'TB' | 'PB' | 'EB' | 'ZB' | 'YB';
};
type UpupUploaderPropsClassNames = {
fileIcon?: string;
containerMini?: string;
containerFull?: string;
containerHeader?: string;
containerCancelButton?: string;
containerAddMoreButton?: string;
adapterButtonList?: string;
adapterButton?: string;
adapterButtonIcon?: string;
adapterButtonText?: string;
adapterViewHeader?: string;
adapterViewCancelButton?: string;
adapterView?: string;
driveLoading?: string;
driveHeader?: string;
driveLogoutButton?: string;
driveSearchContainer?: string;
driveSearchInput?: string;
driveBody?: string;
driveItemContainerDefault?: string;
driveItemContainerSelected?: string;
driveItemContainerInner?: string;
driveItemInnerText?: string;
driveFooter?: string;
driveAddFilesButton?: string;
driveCancelFilesButton?: string;
urlInput?: string;
urlFetchButton?: string;
cameraPreviewContainer?: string;
cameraDeleteButton?: string;
cameraCaptureButton?: string;
cameraRotateButton?: string;
cameraAddButton?: string;
fileListContainer?: string;
fileListContainerInnerSingle?: string;
fileListContainerInnerMultiple?: string;
fileListFooter?: string;
filePreviewPortal?: string;
fileItemSingle?: string;
fileItemMultiple?: string;
fileThumbnailSingle?: string;
fileThumbnailMultiple?: string;
fileInfo?: string;
fileName?: string;
fileSize?: string;
filePreviewButton?: string;
fileDeleteButton?: string;
uploadButton?: string;
uploadDoneButton?: string;
progressBarContainer?: string;
progressBar?: string;
progressBarInner?: string;
progressBarText?: string;
};
type UpupUploaderPropsIcons = {
ContainerAddMoreIcon?: FC<{
className?: string;
}>;
FileDeleteIcon?: FC<{
className?: string;
}>;
CameraDeleteIcon?: FC<{
className?: string;
}>;
CameraCaptureIcon?: FC<{
className?: string;
}>;
CameraRotateIcon?: FC<{
className?: string;
}>;
LoaderIcon?: FC<{
className?: string;
}>;
};
type UpupUploaderProps = {
provider: UpupProvider;
tokenEndpoint: string;
enableAutoCorsConfig?: boolean;
uploadAdapters?: UploadAdapter[];
driveConfigs?: {
googleDrive?: GoogleDriveConfigs;
oneDrive?: OneDriveConfigs;
};
shouldCompress?: boolean;
accept?: string;
limit?: number;
allowPreview?: boolean;
isProcessing?: boolean;
mini?: boolean;
maxFileSize?: MaxFileSizeObject;
customProps?: object;
dark?: boolean;
classNames?: UpupUploaderPropsClassNames;
icons?: UpupUploaderPropsIcons;
onFilesSelected?: (files: FileWithParams[]) => void;
onDoneClicked?: () => void;
onPrepareFiles?: (files: FileWithParams[]) => Promise<FileWithParams[]>;
onFileClick?: (file: FileWithParams) => void;
onIntegrationClick?: (integrationType: string) => void;
onFileUploadStart?: (file: FileWithParams) => void;
onFileUploadComplete?: (file: FileWithParams, key: string) => void;
onFilesUploadComplete?: (fileWithParams: FileWithParams[]) => void;
onFileUploadProgress?: (file: FileWithParams, { loaded, total, percentage, }: {
loaded: number;
total: number;
percentage: number;
}) => void;
onFilesUploadProgress?: (completedFiles: number, totalFiles: number) => void;
onFileRemove?: (file: FileWithParams) => void;
onFilesDragOver?: (files: File[]) => void;
onFilesDragLeave?: (files: File[]) => void;
onFilesDrop?: (files: File[]) => void;
onFileTypeMismatch?: (file: File, acceptedTypes: string) => void;
onError?: (errorMessage: string) => void;
onWarn?: (warningMessage: string) => void;
};
type FileWithParams = File & {
id: string;
url: string;
key?: string;
fileHash?: string | undefined;
thumbnail?: {
file: File;
key?: string;
};
};
type FileWithProgress = FileWithParams & {
progress: number;
};
type UpupUploaderRef = {
useUpload(): {
error?: string;
files: FileWithParams[];
loading: boolean;
progress: number;
upload(): Promise<FileWithParams[] | undefined>;
resetState(): void;
dynamicUpload(files: File[] | FileWithParams[]): Promise<FileWithParams[] | undefined>;
setFiles(newFiles: File[]): void;
dynamicallyReplaceFiles(files: File[] | FileWithParams[]): void;
};
};
declare const _default: React.ForwardRefExoticComponent<UpupUploaderProps & React.RefAttributes<UpupUploaderRef>>;
export { type FileWithParams, type FileWithProgress, type GoogleDriveConfigs, type OneDriveConfigs, UploadAdapter, UpupProvider, _default as UpupUploader, type UpupUploaderRef };