import { useState, useEffect } from 'react' import { CheckCircle, Clock, Zap } from 'lucide-react' import type { LucideIcon } from 'lucide-react' import { sidebarApi } from '@/api' interface StatItem { icon: LucideIcon value: string | number | null label: string color: string } export function GreetingStatStrip() { const [resolved, setResolved] = useState(null) const [active, setActive] = useState(null) const [avgMttr, setAvgMttr] = useState(null) useEffect(() => { sidebarApi.getStats() .then((stats) => { setResolved(stats.resolved_today) setActive(stats.active_count) const avg = stats.resolved_today > 0 ? Math.round(stats.total_session_minutes_today / stats.resolved_today) : null setAvgMttr(avg != null ? `${avg}m` : null) }) .catch(() => {}) }, []) const stats: StatItem[] = [ { icon: CheckCircle, value: resolved, label: 'resolved today', color: '#34d399' }, { icon: Zap, value: active, label: 'active now', color: '#60a5fa' }, { icon: Clock, value: avgMttr, label: 'avg MTTR', color: '#848b9b' }, ] return (
{stats.map(({ icon: Icon, value, label, color }) => (

{value ?? '\u2014'}

{label}

))}
) }