import { useState } from 'react'; import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { useNavigate } from 'react-router-dom'; import { gdprApi } from '../../services/api'; import type { DataDeletionRequest, DeletionRequestStatus } from '../../types'; import Card from '../../components/ui/Card'; import Button from '../../components/ui/Button'; import Select from '../../components/ui/Select'; import { ArrowLeft, FileText, Users, CheckCircle, Clock, XCircle, AlertTriangle, Download, X, ChevronRight } from 'lucide-react'; const STATUS_OPTIONS = [ { value: '', label: 'Alle Status' }, { value: 'PENDING', label: 'Ausstehend' }, { value: 'IN_PROGRESS', label: 'In Bearbeitung' }, { value: 'COMPLETED', label: 'Abgeschlossen' }, { value: 'PARTIALLY_COMPLETED', label: 'Teilweise abgeschlossen' }, { value: 'REJECTED', label: 'Abgelehnt' }, ]; function getStatusBadge(status: DeletionRequestStatus) { switch (status) { case 'PENDING': return Ausstehend; case 'IN_PROGRESS': return In Bearbeitung; case 'COMPLETED': return Abgeschlossen; case 'PARTIALLY_COMPLETED': return Teilweise; case 'REJECTED': return Abgelehnt; default: return {status}; } } function formatDate(date: string): string { return new Date(date).toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric', }); } interface ProcessModalProps { request: DataDeletionRequest; onClose: () => void; onProcess: (action: 'complete' | 'partial' | 'reject', reason?: string) => void; isPending: boolean; } function ProcessModal({ request, onClose, onProcess, isPending }: ProcessModalProps) { const [action, setAction] = useState<'complete' | 'partial' | 'reject'>('complete'); const [reason, setReason] = useState(''); return (

Löschanfrage bearbeiten

Kunde:

{request.customer?.firstName} {request.customer?.lastName} ({request.customer?.customerNumber})

Quelle: {request.requestSource}

Angefordert: {formatDate(request.requestedAt)}

{(action === 'partial' || action === 'reject') && (