'use client' import type { ImportedDocumentType } from '@/lib/sdk/types' export interface UploadedFile { id: string file: File type: ImportedDocumentType status: 'pending' | 'uploading' | 'analyzing' | 'complete' | 'error' progress: number error?: string } export const DOCUMENT_TYPES: { value: ImportedDocumentType; label: string; icon: string }[] = [ { value: 'DSFA', label: 'Datenschutz-Folgenabschaetzung (DSFA)', icon: '📄' }, { value: 'TOM', label: 'Technisch-organisatorische Massnahmen (TOMs)', icon: '🔒' }, { value: 'VVT', label: 'Verarbeitungsverzeichnis (VVT)', icon: '📊' }, { value: 'AGB', label: 'Allgemeine Geschaeftsbedingungen (AGB)', icon: '📜' }, { value: 'PRIVACY_POLICY', label: 'Datenschutzerklaerung', icon: '🔐' }, { value: 'COOKIE_POLICY', label: 'Cookie-Richtlinie', icon: '🍪' }, { value: 'RISK_ASSESSMENT', label: 'Risikobewertung', icon: '⚠️' }, { value: 'AUDIT_REPORT', label: 'Audit-Bericht', icon: '✅' }, { value: 'OTHER', label: 'Sonstiges Dokument', icon: '📎' }, ] export function FileItem({ file, onTypeChange, onRemove, }: { file: UploadedFile onTypeChange: (id: string, type: ImportedDocumentType) => void onRemove: (id: string) => void }) { return (

{file.file.name}

{(file.file.size / 1024 / 1024).toFixed(2)} MB

{file.status === 'pending' && ( )} {file.status === 'uploading' && (
{file.progress}%
)} {file.status === 'analyzing' && (
Analysiere...
)} {file.status === 'complete' && file.error === 'offline' && (
Offline — nicht analysiert
)} {file.status === 'complete' && file.error !== 'offline' && (
Fertig
)} {file.status === 'error' && (
{file.error || 'Fehler'}
)}
) }