// pages-deals.jsx — Appartements (filter+plan), Investir (simulator), Contact // ────────────────────────────────────────────────────────────────────────── // APPARTEMENTS — filterable // ────────────────────────────────────────────────────────────────────────── function AppartementsPage() { const { t, setTweak } = useTheme(); const [filters, setFilters] = useState({ floor: "all", type: "all", orientation: "all", status: "all", maxPrice: 250000 }); const [selected, setSelected] = useState(null); const filtered = LOTS.filter((l) => (filters.floor === "all" || l.floor === Number(filters.floor)) && ( filters.type === "all" || l.surface === Number(filters.type)) && ( filters.orientation === "all" || l.orientation === filters.orientation) && ( filters.status === "all" || l.status === filters.status) && l.price <= filters.maxPrice ); return ( Huit T2, deux typologies,
tous plein sud.} intro="Filtrez selon votre étage, votre orientation, votre budget. Cliquez sur un lot pour voir le plan détaillé." />
{/* Filters */}
setFilters({ ...filters, floor: v })} /> setFilters({ ...filters, type: v })} /> setFilters({ ...filters, orientation: v })} /> setFilters({ ...filters, status: v })} /> setFilters({ ...filters, maxPrice: v })} />
{/* Result count + view switch */}
{filtered.length} appartement{filtered.length > 1 ? "s" : ""} correspondant{filtered.length > 1 ? "s" : ""}
{[["grid", "Grille"], ["table", "Tableau"], ["plan", "Plan masse"]].map(([k, label]) => )}
{/* Views */} {t.lotsView === "grid" &&
{filtered.map((lot) => )}
} {t.lotsView === "table" && } {t.lotsView === "plan" && } {filtered.length === 0 &&
Aucun lot ne correspond à vos critères.
}
{selected && setSelected(null)} />}
); } function VisitesVirtuelles() { const [tour, setTour] = useState("41"); const src = tour === "41" ? "https://kuula.co/share/LXXnC/collection/7TqXT?logo=1&info=1&fs=1&vr=0&sd=1&thumbs=1" : "https://kuula.co/share/collection/7TqXM?logo=1&info=1&fs=1&vr=0&sd=1&thumbs=1"; return (

Promenez-vous
dans les T2.

{[["41", "T2 · 41 m²"], ["48", "T2 · 48 m²"]].map(([k, label]) => ( ))}