Dropzone
Drag-and-drop file upload area
"use client";
import { useState } from "react";
import { Dropzone, DropzoneContent, DropzoneEmptyState } from "@/components/vritti/dropzone";
export function DropzoneExample() {
const [files, setFiles] = useState<File[]>();
return (
<div className="flex w-full max-w-md items-center justify-center p-8">
<Dropzone
accept={{ "image/*": [".png", ".jpg", ".jpeg", ".gif"] }}
maxSize={5 * 1024 * 1024}
onDrop={(acceptedFiles) => setFiles(acceptedFiles)}
src={files}
>
<DropzoneContent />
<DropzoneEmptyState />
</Dropzone>
</div>
);
}
Installation
pnpm dlx shadcn@latest add "https://vritti.thesatyajit.com/r/dropzone"
Dependencies
pnpm add react-dropzone lucide-react