'use client' import React, { useState, useEffect } from 'react' import { useParams } from 'next/navigation' interface VerificationItem { id: string title: string description: string method: string status: 'pending' | 'in_progress' | 'completed' | 'failed' result: string | null linked_hazard_id: string | null linked_hazard_name: string | null linked_mitigation_id: string | null linked_mitigation_name: string | null completed_at: string | null completed_by: string | null created_at: string } const VERIFICATION_METHODS = [ { value: 'test', label: 'Test' }, { value: 'analysis', label: 'Analyse' }, { value: 'inspection', label: 'Inspektion' }, { value: 'simulation', label: 'Simulation' }, { value: 'review', label: 'Review' }, { value: 'demonstration', label: 'Demonstration' }, { value: 'certification', label: 'Zertifizierung' }, ] const STATUS_CONFIG: Record = { pending: { label: 'Ausstehend', color: 'bg-gray-100 text-gray-700' }, in_progress: { label: 'In Bearbeitung', color: 'bg-blue-100 text-blue-700' }, completed: { label: 'Abgeschlossen', color: 'bg-green-100 text-green-700' }, failed: { label: 'Fehlgeschlagen', color: 'bg-red-100 text-red-700' }, } function StatusBadge({ status }: { status: string }) { const config = STATUS_CONFIG[status] || STATUS_CONFIG.pending return ( {config.label} ) } interface VerificationFormData { title: string description: string method: string linked_hazard_id: string linked_mitigation_id: string } function VerificationForm({ onSubmit, onCancel, hazards, mitigations, }: { onSubmit: (data: VerificationFormData) => void onCancel: () => void hazards: { id: string; name: string }[] mitigations: { id: string; title: string }[] }) { const [formData, setFormData] = useState({ title: '', description: '', method: 'test', linked_hazard_id: '', linked_mitigation_id: '', }) return (

Neues Verifikationselement

setFormData({ ...formData, title: e.target.value })} placeholder="z.B. Funktionstest Lichtvorhang" className="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-purple-500 focus:border-transparent dark:bg-gray-700 dark:border-gray-600 dark:text-white" />