'use client' import React from 'react' import { Incident, getHoursUntil72hDeadline, is72hDeadlineExpired } from '@/lib/sdk/incidents/types' /** * 72h-Countdown-Anzeige mit visueller Farbkodierung * Gruen > 48h, Gelb > 24h, Orange > 12h, Rot < 12h oder abgelaufen */ export function CountdownTimer({ incident }: { incident: Incident }) { const hoursRemaining = getHoursUntil72hDeadline(incident.detectedAt) const expired = is72hDeadlineExpired(incident.detectedAt) // Nicht relevant fuer abgeschlossene Vorfaelle if (incident.status === 'closed') return null // Bereits gemeldet if (incident.authorityNotification && (incident.authorityNotification.status === 'submitted' || incident.authorityNotification.status === 'acknowledged')) { return ( Gemeldet ) } // Keine Meldepflicht festgestellt if (incident.riskAssessment && !incident.riskAssessment.notificationRequired) { return ( Keine Meldepflicht ) } // Abgelaufen if (expired) { const overdueHours = Math.abs(hoursRemaining) return ( {overdueHours.toFixed(0)}h ueberfaellig ) } // Farbkodierung: gruen > 48h, gelb > 24h, orange > 12h, rot < 12h let colorClass: string if (hoursRemaining > 48) { colorClass = 'bg-green-100 text-green-700' } else if (hoursRemaining > 24) { colorClass = 'bg-yellow-100 text-yellow-700' } else if (hoursRemaining > 12) { colorClass = 'bg-orange-100 text-orange-700' } else { colorClass = 'bg-red-100 text-red-700' } return ( {hoursRemaining.toFixed(0)}h verbleibend ) }