pnpm dlx shadcn@latest add https://ui.saturation.io/r/file-upload-zone.jsonimport { FileUploadZone } from "@/components/ui/file-upload-zone"<FileUploadZone
files={uploadedFiles}
onFilesDrop={(files) => handleFiles(files)}
onRemoveFile={(id) => removeFile(id)}
/>| Prop | Type | Default | Description |
|---|---|---|---|
files | UploadedFile[] | [] | Array of uploaded file objects with progress and status. |
onFilesDrop | (files: File[]) => void | — | Callback when files are dropped or selected. |
onRemoveFile | (fileId: string) => void | — | Callback when a file is removed. |
showDropZone | boolean | true | Whether to show the drop zone area. |
className | string | — | Additional CSS classes. |
interface UploadedFile {
id: string
name: string
progress: number
status: "uploading" | "scanning" | "matched" | "unmatched" | "error"
matchedWith?: string
}Drop files here
Invoices and receipts accepted