'use client' import { useState, useRef } from 'react' import { GlassCard } from './GlassCard' interface UploadModalProps { isOpen: boolean onClose: () => void onUpload: (files: File[], anonymIds: string[]) => void isUploading: boolean } export function UploadModal({ isOpen, onClose, onUpload, isUploading }: UploadModalProps) { const [files, setFiles] = useState([]) const [anonymIds, setAnonymIds] = useState([]) const fileInputRef = useRef(null) if (!isOpen) return null const handleFileSelect = (selectedFiles: FileList | null) => { if (!selectedFiles) return const newFiles = Array.from(selectedFiles) setFiles((prev) => [...prev, ...newFiles]) setAnonymIds((prev) => [ ...prev, ...newFiles.map((_, i) => `Arbeit-${prev.length + i + 1}`), ]) } const handleDrop = (e: React.DragEvent) => { e.preventDefault() handleFileSelect(e.dataTransfer.files) } const removeFile = (index: number) => { setFiles((prev) => prev.filter((_, i) => i !== index)) setAnonymIds((prev) => prev.filter((_, i) => i !== index)) } const updateAnonymId = (index: number, value: string) => { setAnonymIds((prev) => { const updated = [...prev] updated[index] = value return updated }) } const handleSubmit = () => { if (files.length > 0) { onUpload(files, anonymIds) } } return (

Arbeiten hochladen

{/* Drop Zone */}
e.preventDefault()} onClick={() => fileInputRef.current?.click()} > handleFileSelect(e.target.files)} className="hidden" />

Dateien hierher ziehen

oder klicken zum Auswaehlen

{/* File List */} {files.length > 0 && (
{files.map((file, index) => (
{file.type.startsWith('image/') ? '\uD83D\uDDBC\uFE0F' : '\uD83D\uDCC4'}

{file.name}

updateAnonymId(index, e.target.value)} placeholder="Anonym-ID" className="mt-1 w-full px-2 py-1 rounded bg-white/10 border border-white/10 text-white text-sm placeholder-white/40 focus:outline-none focus:border-purple-500" />
))}
)} {/* Actions */}
) }