import { useMemo } from 'react'; import { CheckCircle2, AlertTriangle, XCircle, TrendingUp, TrendingDown } from 'lucide-react'; interface MeasurementItem { name: string; value: number; unit: string; tolerance: number; status: 'pass' | 'warning' | 'fail'; } interface ErrorStats { min: number; max: number; mean: number; stdDev: number; } interface RealtimeReportProps { processedChunks: number; totalChunks: number; measurements: MeasurementItem[]; errorStats: ErrorStats | null; isProcessing: boolean; className?: string; } export default function RealtimeReport({ processedChunks, totalChunks, measurements, errorStats, isProcessing, className = '' }: RealtimeReportProps) { const visibleMeasurements = useMemo(() => { const ratio = processedChunks / totalChunks; const count = Math.floor(measurements.length * ratio); return measurements.slice(0, count); }, [processedChunks, totalChunks, measurements]); const stats = useMemo(() => { const pass = visibleMeasurements.filter(m => m.status === 'pass').length; const warning = visibleMeasurements.filter(m => m.status === 'warning').length; const fail = visibleMeasurements.filter(m => m.status === 'fail').length; return { pass, warning, fail, total: visibleMeasurements.length }; }, [visibleMeasurements]); return (