@health-ecosystem/file-upload
Version:
File upload library for Health Ecosystem applications with improved Next.js 15+ compatibility
66 lines • 2.21 kB
TypeScript
/**
* Modern File Uploader Component
* Production-ready React component for Health Ecosystem file uploads
* Version 2.0 - Modern UI with manual upload control
*/
import React from 'react';
import { FileUploadConfig, UploadOptions, UploadResult, UploadError } from '../types';
interface FileUploaderProps {
/** File upload configuration */
config: FileUploadConfig;
/** Upload options */
options: UploadOptions;
/** Multiple file selection */
multiple?: boolean;
/** Accept file types */
accept?: string;
/** Enable drag and drop */
enableDropzone?: boolean;
/** Auto upload files when selected */
autoUpload?: boolean;
/** Show file previews */
showPreview?: boolean;
/** Custom styling */
className?: string;
/** Custom styles */
style?: React.CSSProperties;
/** Upload success callback */
onSuccess?: (result: UploadResult | UploadResult[]) => void;
/** Upload error callback */
onError?: (error: UploadError) => void;
/** Upload progress callback */
onProgress?: (progress: number) => void;
/** File selection callback */
onFilesSelected?: (files: File[]) => void;
/** Children render function */
children?: (props: FileUploaderRenderProps) => React.ReactNode;
}
interface FileUploaderRenderProps {
/** Whether upload is in progress */
isUploading: boolean;
/** Upload progress (0-100) */
progress: number;
/** Upload result */
result?: UploadResult;
/** Upload error */
error?: UploadError;
/** Whether drag is active (if dropzone enabled) */
isDragActive?: boolean;
/** Selected files */
selectedFiles: File[];
/** Open file picker */
openFilePicker: () => void;
/** Upload files manually */
upload: (files?: File[]) => Promise<UploadResult | UploadResult[]>;
/** Cancel upload */
cancel: () => void;
/** Reset state */
reset: () => void;
/** Clear selected files */
clearFiles: () => void;
/** Remove specific file */
removeFile: (index: number) => void;
}
export declare const FileUploader: React.FC<FileUploaderProps>;
export default FileUploader;
//# sourceMappingURL=FileUploader.d.ts.map