'use client' import { useState } from 'react' import type { DisplayEvidence } from './EvidenceTypes' export function RejectModal({ evidence, onClose, onSuccess }: { evidence: DisplayEvidence onClose: () => void onSuccess: () => void }) { const [reviewedBy, setReviewedBy] = useState('') const [rejectionReason, setRejectionReason] = useState('') const [submitting, setSubmitting] = useState(false) const [error, setError] = useState(null) const handleSubmit = async () => { if (!reviewedBy.trim()) { setError('Bitte E-Mail-Adresse angeben'); return } if (!rejectionReason.trim()) { setError('Bitte Ablehnungsgrund angeben'); return } setSubmitting(true) setError(null) try { const res = await fetch(`/api/sdk/v1/compliance/evidence/${evidence.id}/reject`, { method: 'PATCH', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ reviewed_by: reviewedBy, rejection_reason: rejectionReason }), }) if (!res.ok) { const err = await res.json().catch(() => ({ detail: 'Ablehnung fehlgeschlagen' })) throw new Error(typeof err.detail === 'string' ? err.detail : JSON.stringify(err.detail)) } onSuccess() } catch (err) { setError(err instanceof Error ? err.message : 'Unbekannter Fehler') } finally { setSubmitting(false) } } return (
e.stopPropagation()}>

Evidence Ablehnen

{evidence.name}

setReviewedBy(e.target.value)} placeholder="reviewer@unternehmen.de" className="w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-red-500 focus:border-transparent" />