import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { BarChart, Bar, XAxis, YAxis, Tooltip, ResponsiveContainer } from 'recharts'; import { AlertCircle, TrendingUp, Users, Zap } from 'lucide-react'; interface ErrorSummary { error_type: string | null; occurrence_count: number | null; affected_users: number | null; avg_duration_ms: number | null; } interface ErrorAnalyticsProps { errorSummary: ErrorSummary[] | undefined; } export function ErrorAnalytics({ errorSummary }: ErrorAnalyticsProps) { if (!errorSummary || errorSummary.length === 0) { return null; } const totalErrors = errorSummary.reduce((sum, item) => sum + (item.occurrence_count || 0), 0); const totalAffectedUsers = errorSummary.reduce((sum, item) => sum + (item.affected_users || 0), 0); const avgDuration = errorSummary.reduce((sum, item) => sum + (item.avg_duration_ms || 0), 0) / errorSummary.length; const topErrors = errorSummary.slice(0, 5); return (
Total Errors
{totalErrors}

Last 30 days

Error Types
{errorSummary.length}

Unique error types

Affected Users
{totalAffectedUsers}

Users impacted

Avg Duration
{Math.round(avgDuration)}ms

Before error occurs

Top 5 Errors
); }