"use client" import { useState } from "react" import { Upload, X, File, ImageIcon, Film, Music, Archive, AlertCircle, FileText } from "lucide-react" import { Button } from "@/components/ui/button" import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card" import { Progress } from "@/components/ui/progress" import { cn } from "@/lib/utils" interface FileItem { id: string name: string size: string type: string progress: number status: "uploading" | "complete" | "error" } export function FileUploadBlock() { const [files, setFiles] = useState([ { id: "1", name: "project-proposal.pdf", size: "2.4 MB", type: "pdf", progress: 100, status: "complete", }, { id: "2", name: "presentation.pptx", size: "4.8 MB", type: "pptx", progress: 100, status: "complete", }, { id: "3", name: "screenshot.png", size: "1.2 MB", type: "image", progress: 65, status: "uploading", }, { id: "4", name: "data-analysis.xlsx", size: "3.5 MB", type: "xlsx", progress: 0, status: "error", }, ]) const removeFile = (id: string) => { setFiles(files.filter((file) => file.id !== id)) } const getFileIcon = (type: string) => { switch (type) { case "pdf": return case "image": return case "video": return case "audio": return case "zip": case "rar": return case "pptx": return case "xlsx": return default: return } } return ( File Upload Upload your files here.

Drag files here or click to browse

Support for PDF, DOCX, XLSX, JPG, PNG and more

Up to 10MB per file

{files.map((file) => (
{getFileIcon(file.type)}
{file.name}
{file.size} {file.status === "error" && ( Upload failed )} {file.status === "complete" && Complete} {file.status === "uploading" && {file.progress}%}
{file.status === "uploading" && }
))}
) }