/** * Trouve-KA — distribution des codes HTTP en barres CSS * Author: Simon-Pierre Boucher * Contact: contact@spboucher.ai */ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { formatNumber } from "@/lib/format"; /** * Couleur de statut par classe HTTP. Palette de statut réservée (jamais une * couleur de série) : chaque barre porte son code et sa valeur en texte — * la couleur n'est jamais le seul canal d'information. */ function barClass(code: string): string { if (code.startsWith("2")) return "bg-status-good"; if (code.startsWith("3")) return "bg-viz-blue"; if (code.startsWith("4")) return "bg-status-warning"; if (code.startsWith("5")) return "bg-status-critical"; return "bg-ink-3"; } interface HttpBarsProps { data: Record; } export function HttpBars({ data }: HttpBarsProps) { const entries = Object.entries(data).sort(([a], [b]) => a.localeCompare(b)); const max = Math.max(1, ...entries.map(([, count]) => count)); return ( Distribution des codes HTTP {entries.length === 0 ? (

Aucune donnée pour l'instant.

) : (
    {entries.map(([code, count]) => (
  • {code} {formatNumber(count)}
  • ))}
)}
); }