"use client"; import { useCallback, useState } from "react"; import { useTranslations } from "next-intl"; import { Upload, FolderPlus, FilePlus } from "lucide-react"; import { Button } from "@/components/ui/button"; interface FileUploadAreaProps { onUpload: (files: File[]) => Promise; onCreateFolder: () => void; onCreateTextFile?: () => void; } export function FileUploadArea({ onUpload, onCreateFolder, onCreateTextFile }: FileUploadAreaProps) { const t = useTranslations("files"); const [isDragging, setIsDragging] = useState(false); const handleDragOver = useCallback((e: React.DragEvent) => { e.preventDefault(); e.stopPropagation(); setIsDragging(true); }, []); const handleDragLeave = useCallback((e: React.DragEvent) => { e.preventDefault(); e.stopPropagation(); setIsDragging(false); }, []); const handleDrop = useCallback(async (e: React.DragEvent) => { e.preventDefault(); e.stopPropagation(); setIsDragging(false); const files = Array.from(e.dataTransfer.files); if (files.length > 0) { await onUpload(files); } }, [onUpload]); return (

{t("empty_state_title")}

{t("empty_state_description")}

{t("drop_files_here")}

{onCreateTextFile && ( )}
); }