/* Inventory + Vehicle Detail pages */ /* ============== INVENTORY ============== */ function InventoryPage({ navigate, initialFilter, openEnquiry }) { const [filters, setFilters] = useStateP({ brand: initialFilter?.brand || "", body: "", fuel: "", priceMax: 1000000, sort: "featured", search: "", }); const [view, setView] = useStateP("grid"); // grid | list const filtered = useMemoP(() => { let list = VEHICLES.filter(v => { if (filters.brand && v.make !== filters.brand) return false; if (filters.body && v.body !== filters.body) return false; if (filters.fuel && v.fuel !== filters.fuel) return false; if (filters.search) { const q = filters.search.toLowerCase(); const hay = `${v.make} ${v.model} ${v.variant} ${v.year}`.toLowerCase(); if (!hay.includes(q)) return false; } return true; }); if (filters.sort === "year-new") list.sort((a, b) => b.year - a.year); if (filters.sort === "year-old") list.sort((a, b) => a.year - b.year); if (filters.sort === "price-high") list.sort((a, b) => (b.price || 0) - (a.price || 0)); if (filters.sort === "price-low") list.sort((a, b) => (a.price || 9e9) - (b.price || 9e9)); if (filters.sort === "mileage") list.sort((a, b) => a.mileage - b.mileage); return list; }, [filters]); const update = (k, v) => setFilters(f => ({ ...f, [k]: v })); const clearAll = () => setFilters({ brand: "", body: "", fuel: "", priceMax: 1000000, sort: "featured", search: "" }); return (
Live stock rotates weekly. Pricing shown is private to the buyer on most cars — request a quote and we'll share spec sheets, history reports, and arrange a private viewing.
Adjust the filters, or let us source one for you.
Provenance details are confirmed in writing with the buyer ahead of payment.