UNPKG

@health-ecosystem/file-upload

Version:

File upload library for Health Ecosystem applications with improved Next.js 15+ compatibility

75 lines 2.6 kB
/** * React Hook for File Upload * Production-ready React hook for Health Ecosystem file uploads */ import { FileUploadClient } from '../FileUploadClient'; import { FileUploadConfig, UploadOptions, UploadResult, FileUploadState } from '../types'; interface UseFileUploadOptions extends Partial<UploadOptions> { /** Auto-upload when files are selected */ autoUpload?: boolean; /** Multiple file selection */ multiple?: boolean; /** Accept file types (HTML input accept attribute) */ accept?: string; } interface UseFileUploadReturn { /** Current upload state */ state: FileUploadState; /** Upload files */ upload: (files: File[] | File, options?: Partial<UploadOptions>) => Promise<UploadResult | UploadResult[]>; /** Cancel current upload */ cancel: () => void; /** Reset upload state */ reset: () => void; /** Open file picker */ openFilePicker: () => void; /** File input props for manual integration */ getInputProps: () => { type: 'file'; accept?: string; multiple?: boolean; onChange: (event: React.ChangeEvent<HTMLInputElement>) => void; style: { display: 'none'; }; }; /** Upload client instance */ client: FileUploadClient; } export declare function useFileUpload(config: FileUploadConfig, options?: UseFileUploadOptions): UseFileUploadReturn; /** * Hook for drag and drop file upload */ export declare function useDropzone(config: FileUploadConfig, options?: UseFileUploadOptions): { isDragActive: boolean; getDropzoneProps: () => { onDragEnter: (event: React.DragEvent) => void; onDragLeave: (event: React.DragEvent) => void; onDragOver: (event: React.DragEvent) => void; onDrop: (event: React.DragEvent) => void; }; /** Current upload state */ state: FileUploadState; /** Upload files */ upload: (files: File[] | File, options?: Partial<UploadOptions>) => Promise<UploadResult | UploadResult[]>; /** Cancel current upload */ cancel: () => void; /** Reset upload state */ reset: () => void; /** Open file picker */ openFilePicker: () => void; /** File input props for manual integration */ getInputProps: () => { type: "file"; accept?: string; multiple?: boolean; onChange: (event: React.ChangeEvent<HTMLInputElement>) => void; style: { display: "none"; }; }; /** Upload client instance */ client: FileUploadClient; }; export {}; //# sourceMappingURL=useFileUpload.d.ts.map