// ----------------------------------------------------------------------------- // Lou-Ka — Agrégateur de logements à louer (province de Québec) // Auteur : Simon-Pierre Boucher — contact@spboucher.ai // components/HydroEstimation.tsx : bloc « Coût d'électricité » (fiche) // Estimation Hydro-Québec du coût annuel d'électricité à l'adresse // (louka/hydro.py). Les annonces récentes sont pré-calculées et mises en // cache : le bloc s'affiche alors automatiquement. Sinon un bouton permet // de lancer le calcul à la demande (une résolution de captcha par appel). // ----------------------------------------------------------------------------- import { useEffect, useState } from "react"; import { fetchHydro, fmtPrice, HydroEstimate } from "../api"; export default function HydroEstimation({ adresse, uid, lat, lng }: { adresse: string | null; uid?: string; lat?: number | null; lng?: number | null }) { const [d, setD] = useState(null); const [loading, setLoading] = useState(false); const [masque, setMasque] = useState(false); // au montage : lecture du cache uniquement (aucun captcha, aucun coût) useEffect(() => { setD(null); if (!adresse) return; fetchHydro(adresse, { uid, lat, lng }, false) .then((r) => { if (r.disponible || r.en_attente) setD(r); else if (/captcha|configuré|incomplète/.test(r.raison || "")) setMasque(true); // service off ou adresse inexploitable else setD(r); }) .catch(() => setMasque(true)); }, [adresse, uid, lat, lng]); if (masque || !adresse || !d) return null; const lancer = () => { setLoading(true); fetchHydro(adresse, { uid, lat, lng }, true) .then((r) => { if (!r.disponible && /captcha|configuré/.test(r.raison || "")) setMasque(true); else setD(r); }) .catch(() => setMasque(true)) .finally(() => setLoading(false)); }; return (

Coût d'électricité

{d.disponible ? ( <>
{fmtPrice(d.cout_mensuel!)} / mois soit ~{fmtPrice(d.cout_annuel!)} / an

Estimation Hydro-Québec pour {d.adresse} {d.kwh_annuel ? ` — ${d.kwh_annuel.toLocaleString("fr-CA")} kWh/an` : ""}, fondée sur la consommation réelle du logement. Le montant réel varie selon l'occupation et les habitudes.

) : d.en_attente ? ( <>

Obtenez une estimation du coût annuel d'électricité pour ce logement, calculée par Hydro-Québec d'après sa consommation réelle.

) : (

Hydro-Québec n'a pas d'estimation pour cette adresse.

)}
); }