// ----------------------------------------------------------------------------- // Immo-Ka — Agrégateur de propriétés à vendre (province de Québec) // Auteur : Simon-Pierre Boucher — contact@spboucher.ai // fiche/ImmoKaScore.tsx : carte « Immo-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. // ----------------------------------------------------------------------------- import { useEffect, useState } from "react"; import { Ico } from "../components/Icons"; import { ImmoKaScore 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 ImmoKaScore({ 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 Vrai-Prix ↗ · Données et sources Immo-Ka

); }