'use client'; import { useEffect, useState } from 'react'; import Progress from './Progress'; import { Recognition } from '../../types/plates'; import Checkbox from './Checkbox'; type Props = { entry: Recognition; isSelected?: boolean; isNew?: boolean; onClick?: () => void; // neu für Checkbox: checked?: boolean; onToggle?: () => void; }; export default function RecognitionRow({ entry, isSelected = false, isNew = false, onClick, checked = false, onToggle, }: Props) { const [animatedConfidence, setAnimatedConfidence] = useState(0); useEffect(() => { if (isNew) { setAnimatedConfidence(0); setTimeout(() => setAnimatedConfidence(entry.confidence ?? 0), 50); } else { setAnimatedConfidence(entry.confidence ?? 0); } }, [entry.confidence, isNew]); const rowClass = [ 'cursor-pointer', isSelected && !isNew ? 'bg-gray-200 dark:bg-neutral-700' : '', !isSelected ? 'hover:bg-gray-100 dark:hover:bg-neutral-600' : '', isNew ? 'bg-green-50 dark:bg-green-600' : '' ].filter(Boolean).join(' '); const showDirIcon = typeof entry.directionDegrees === 'number' && entry.directionDegrees > 0; const dirText = entry.direction ? entry.direction.toLowerCase() === 'away' ? 'abfahrend' : entry.direction.toLowerCase() === 'towards' ? 'ankommend' : '–' : '–'; return (