@spaced-out/ui-design-system
Version:
Sense UI components library
65 lines • 2.25 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 interface FileObject {
file: File;
id: string;
reject?: boolean;
rejectReason?: string;
progress?: FileProgress;
success?: boolean;
successMessage?: string;
showReUpload?: boolean;
[key: string]: unknown;
}
export interface FileError {
code: string;
}
export interface FileRejection {
errors: Array<FileError>;
file: File;
}
export interface 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 interface FileUploadBaseProps {
maxFiles?: number;
maxSize?: number;
accept?: {
[key: string]: string[];
};
disabled?: boolean;
error?: boolean;
onValidFilesDrop?: (acceptedFiles: Array<FileObject>) => unknown;
onRejectedFilesDrop?: (fileRejections: Array<FileObject>) => unknown;
onFileClear?: (id: string) => unknown;
onClear?: () => unknown;
}
export interface FileUploadProps extends Omit<FileUploadBaseProps, 'classNames' | 'label' | 'instruction' | 'draggingInstruction' | 'secondaryInstruction' | 'required' | 'handleFileDeletionExternally' | 'onFileRefreshClick'> {
classNames?: ClassNames;
label?: React.ReactNode;
instruction?: React.ReactNode;
draggingInstruction?: React.ReactNode;
secondaryInstruction?: React.ReactNode;
required?: boolean;
handleFileDeletionExternally?: boolean;
onFileRefreshClick?: (file: FileObject) => unknown;
testId?: string;
}
export declare const FileUpload: Flow.AbstractComponent<FileUploadProps, FileUploadRef>;
export {};
//# sourceMappingURL=FileUpload.d.ts.map