@spaced-out/ui-design-system
Version:
Sense UI components library
62 lines • 1.99 kB
TypeScript
import * as React from 'react';
import type { Flow } from 'flow-to-typescript-codemod';
type ClassNames = Readonly<{
wrapper?: string;
instruction?: string;
secondaryInstruction?: string;
dropZone?: string;
files?: string;
}>;
export type FileProgress = number | 'indeterminate';
export type FileObject = {
file: File;
id: string;
reject?: boolean;
rejectReason?: string;
progress?: FileProgress;
success?: boolean;
successMessage?: string;
showReUpload?: boolean;
};
export type FileError = {
code: string;
};
export type FileRejection = {
errors: Array<FileError>;
file: File;
};
export type FileUploadRef = {
moveFileToProgress: (id: string, progress: FileProgress) => unknown;
moveFileToSuccess: (id: string, successMessage?: string) => unknown;
moveFileToReject: (id: string, rejectReason?: string) => unknown;
setShowReUpload: (id: string, showReUpload?: boolean) => unknown;
handleFileClear: (id: string) => unknown;
validFiles: Array<FileObject>;
rejectedFiles: Array<FileObject>;
files: Array<FileObject>;
};
export type FileUploadBaseProps = {
maxFiles?: number;
maxSize?: number;
accept?: {
[key: string]: string[];
};
disabled?: boolean;
onValidFilesDrop?: (acceptedFiles: Array<FileObject>) => unknown;
onRejectedFilesDrop?: (fileRejections: Array<FileObject>) => unknown;
onFileClear?: (id: string) => unknown;
onClear?: () => unknown;
};
export type FileUploadProps = FileUploadBaseProps & {
classNames?: ClassNames;
label?: React.ReactNode;
instruction?: React.ReactNode;
draggingInstruction?: React.ReactNode;
secondaryInstruction?: React.ReactNode;
required?: boolean;
handleFileDeletionExternally?: boolean;
onFileRefreshClick?: (file: FileObject) => unknown;
};
export declare const FileUpload: Flow.AbstractComponent<FileUploadProps, FileUploadRef>;
export {};
//# sourceMappingURL=FileUpload.d.ts.map