/* Home, Collection grid, Vehicle Detail */ const { useState: useStateP, useEffect: useEffectP, useMemo: useMemoP } = React; /* ============================================================ HOME ============================================================ */ function Home({ navigate, openEnquire }) { const featured = INVENTORY.filter(v => v.status === "available").slice(0, 6); return (
{/* HERO */}
Dubai · Since 2014

A gallery of classic cars
born from pure passion
for timeless beauty.

Scroll
{/* INTRO */}
01 — Who we are

Tomini Classics is no common car dealership.

A curated, passion-led gallery of post-war European sportscars — from the 1930s through to the future modern classics — alongside a small selection of automobilia and timepieces. The collection began privately in 2010 with a 1967 Jaguar E-Type; Tomini Classics was established as the automotive division of the Tomini Group in 2014. We buy, we hold, and we sell with radical transparency. Relationships always come before sales.

{/* FEATURED COLLECTION */}
02 — Currently on display

From the gallery floor.

{featured.map(v => )}
{/* VALUES */}
03 — Our philosophy

Three principles we will not bend.

/ 01

Authenticity

Every car is inspected in-house — from paint readings to a comprehensive test drive — and described faithfully. We disclose negatives openly.

/ 02

Passion

The collection began for love, and it is still run that way. We hold the cars we love long enough to know them deeply.

/ 03

Diversity

From a Patent-Motorwagen tribute to a future modern classic — almost a century of curated European craft, in one room.

{/* SERVICES TEASER */}
{[ { title: "Storage", img: "media/services-banner.webp", desc: "White-glove, climate-controlled, dust-free. Minimum one month. Twenty-four-hour access by prior arrangement." }, { title: "Valuation", img: "media/services-assessment.webp", desc: "Fair, unbiased valuation reports for insurance or resale — weighing originality, provenance and condition." }, { title: "Consulting", img: "media/services-consulting.webp", desc: "Collection-building advice tailored to taste, needs and budget. Market opinion, not market hype." } ].map(s => (
navigate("services")}>
{s.title}

{s.title}

{s.desc}

))}
{/* WANTED TEASER */}
04 — We are buyers, too

Have a car we should know about?

We actively buy and trade selective post-war collectible sportscars. If yours fits the profile, we'd genuinely like to hear from you — and we'll tell you straight if it doesn't.

{WANTED.slice(0, 4).map((w, i) => (
{w.year}
{w.marque}
{w.model}

{w.note}

))}
{/* PRESS */}
As featured in
{/* CONTACT BAND */}

Visit us. Appointments
are highly recommended.

Sales by appointment, Monday to Friday, 09:00–17:00.
Gallery open to enthusiasts daily, 09:00–22:00.

+971 4 306 2032
); } /* ============================================================ COLLECTION GRID ============================================================ */ function Collection({ navigate }) { const [make, setMake] = useStateP("All"); const [era, setEra] = useStateP("All"); const [body, setBody] = useStateP("All"); const [status, setStatus] = useStateP("All"); const makes = ["All", ...Array.from(new Set(INVENTORY.map(v => v.make)))]; const eras = ["All", "Pre-war", "1950s", "1960s", "1970s"]; const bodies = ["All", "Roadster", "Coupé", "Curiosity"]; const statuses = ["All", "Available", "Reserved", "Sold"]; const filtered = INVENTORY.filter(v => (make === "All" || v.make === make) && (era === "All" || v.era === era) && (body === "All" || v.bodyType === body) && (status === "All" || v.status === status.toLowerCase()) ); return (
The Collection

Dubai's finest selection of post-war European sportscars.

A volatile, curated portfolio of roughly sixty examples on the gallery floor — and a wider collection in the private vault. Inventory rotates. Prices are quoted in US dollars on enquiry.

{filtered.length} of {INVENTORY.length}} />
{filtered.map(v => )} {filtered.length === 0 && (

Nothing in stock matches these filters at the moment.

)}
); } function FilterRow({ label, options, value, onChange, extra }) { return (
{label} {options.map(o => ( ))}
{extra}
); } /* ============================================================ VEHICLE DETAIL — the differentiator ============================================================ */ function VehicleDetail({ id, navigate, openEnquire, whatsappOn }) { const v = INVENTORY.find(x => x.id === id) || INVENTORY[0]; const [lbIdx, setLbIdx] = useStateP(null); useEffectP(() => { window.scrollTo({ top: 0, behavior: "instant" }); }, [id]); useEffectP(() => { if (lbIdx === null) return; const onKey = e => { if (e.key === "Escape") setLbIdx(null); if (e.key === "ArrowRight") setLbIdx((lbIdx + 1) % v.images.length); if (e.key === "ArrowLeft") setLbIdx((lbIdx - 1 + v.images.length) % v.images.length); }; window.addEventListener("keydown", onKey); return () => window.removeEventListener("keydown", onKey); }, [lbIdx, v]); const related = INVENTORY.filter(x => x.id !== v.id && x.make === v.make).slice(0, 3); const fillers = INVENTORY.filter(x => x.id !== v.id && x.make !== v.make).slice(0, 3 - related.length); const youMayLike = [...related, ...fillers].slice(0, 3); return (
{/* CINEMATIC HERO */}
{`${v.year}
navigate("home")}>Tomini Classics / navigate("collection")}>Collection / {v.year} {v.make} {v.model}
{/* LEFT */}
{v.status === "available" ? "Available" : v.status === "sold" ? "Sold" : "Reserved"} {v.bodyType} · {v.era}

{v.year} {v.make}
{v.model}

{v.sub}

{v.provenance.map((para, i) => (

{para}

))}
{/* Gallery */}
{v.images.slice(0, 5).map((src, i) => (
setLbIdx(i)}> {`${v.make}
))}
{/* Honesty footer */}
Our honesty policy

Every car is inspected in-house — from measuring paint thickness to a comprehensive test drive. If we know something about this car you should know, it's already in the description above.

{/* RIGHT — sticky panel */}
{/* You may also like */}
You may also like

From the same gallery floor.

{youMayLike.map(x => )}
{/* Lightbox */} {lbIdx !== null && (
setLbIdx(null)}> e.stopPropagation()} alt="" /> {v.images.length > 1 && (
{lbIdx + 1} / {v.images.length}
)}
)}
); } function Spec({ k, v, alone }) { return (
{k} {v}
); } Object.assign(window, { Home, Collection, VehicleDetail });