// ----------------------------------------------------------------------------- // Lou-Ka — Agrégateur de logements à louer (province de Québec) // Auteur : Simon-Pierre Boucher — contact@spboucher.ai // fiche/LouKaScore.tsx : carte « Lou-Ka Score » — anneau 0-100 animé, libellé, // composantes (emplacement / prix) et méthodologie en accordéon. Quand une // composante manque, le score est présenté comme partiel ; quand aucune // n'est fiable, la carte affiche la synthèse sans chiffre (jamais inventé). // ----------------------------------------------------------------------------- import { useEffect, useState } from "react"; import { Link } from "react-router-dom"; import { IcoSparkles } from "../components/Icons"; import { LouKaScore as Score } from "./synthese"; import { Accordion, SectionCard } from "./ui"; export function ScoreRing({ value, partial, size = 88 }: { value: number | null; partial?: boolean; size?: number }) { const [v, setV] = useState(0); useEffect(() => { const t = requestAnimationFrame(() => setV(value ?? 0)); return () => cancelAnimationFrame(t); }, [value]); const r = 40, c = 2 * Math.PI * r; return (
{value != null ? value : "—"}/ 100
); } export default function LouKaScore({ s, resume }: { s: Score; resume: string[] }) { return ( } sub={s.partial ? "Score partiel — une composante manque" : undefined}>
{s.value != null ? s.label : "Pas assez de données pour un score"}
{resume.length > 0 &&
{resume.join(" · ")}
}
Emplacement {s.emplacement != null ? {s.emplacement} : "non évalué"} Prix {s.prix != null ? {s.prix} : "non évalué"}

{s.explication}

Méthodologie des KA Scores · Méthodologie de la juste valeur

); }