// ----------------------------------------------------------------------------- // Lou-Ka — Agrégateur de logements à louer (province de Québec) // Auteur : Simon-Pierre Boucher — contact@spboucher.ai // components/KaScoreBadge.tsx : pastilles KA Score (design system Groupe-KA). // · compact : « KA 78 » sur les cartes d'annonces et mini-fiches ; // · cercle : jauge circulaire d'un sous-score sur la fiche. // ----------------------------------------------------------------------------- import { kaLabel } from "../api"; /** Classe de teinte par tranche (styles dans styles.css). */ export function kaTint(score: number | null | undefined): string { if (score == null) return "na"; if (score >= 70) return "haut"; if (score >= 55) return "bon"; if (score >= 40) return "moyen"; return "bas"; } /** Pastille compacte « KA 78 » — cartes de liste, carrousel, mini-fiches. */ export default function KaScoreBadge({ score, title }: { score: number | null | undefined; title?: string; }) { if (score == null) return null; return ( KA {Math.round(score)} ); } /** Jauge circulaire d'un sous-score (fiche d'annonce, page méthodologie). */ export function KaScoreCircle({ score, nom, note }: { score: number | null; nom: string; note?: string | null; }) { const r = 26; const c = 2 * Math.PI * r; const part = score == null ? 0 : Math.max(0, Math.min(1, score / 100)); return (
{nom}
{score == null ? (note ?? "Données insuffisantes") : kaLabel(score)}
); }