Dropzone Uploader

A drag-and-drop zone with visual feedback when files are dragged over.

import { UplofileRoot, UplofilePreview } from "@/components/ui/uplofile";
import { mockUpload } from "@/lib/utils.ts";
import { DropTarget } from "./dropzoneuploader.droptarget.demo.tsx";
import { DropzoneFileItem } from "./dropzoneuploader.fileitem.demo.tsx";
export default function DropzoneUploaderDemo() {
return (
<UplofileRoot upload={mockUpload} accept="*/*" multiple>
<DropTarget />
<UplofilePreview
render={({ items }) => (
<div className="mt-8 space-y-3">
{items.map((item) => (
<DropzoneFileItem key={item.uid} item={item} />
))}
</div>
)}
/>
</UplofileRoot>
);
}

Notes

  • Uses data-[dragging=true] for visual feedback on drag
  • Combines dropzone with clickable trigger
  • multiple prop enables multi-file selection