/* global React, ReactDOM, Navbar, Hero, BrandStrip, NoDepositBand, FeaturedFleet, CategoriesBlock, HowItWorks, AwardStrip, CTABand, Footer, FleetPage, VehicleDetail, BookingDrawer, ContactPage, HowPage, AboutPage, FloatRail, TweaksPanel, useTweaks, TweakSection, TweakRadio, TweakColor, TweakToggle, TweakSelect */ const { useState, useEffect, useMemo } = React; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accent": "#E16C2A", "heroVariant": "ferrari", "rtl": false, "density": "comfortable", "displayFont": "Saira" }/*EDITMODE-END*/; const HERO_IMAGES = { huracan: "media/car-lamborghini-huracan.webp", bentley: "media/car-bentley-bentayga.webp", ferrari: "media/car-ferrari-f8.webp", cybertruck: "media/car-tesla-cybertruck.webp", audi: "media/car-audi-r8.webp" }; function App() { const [route, setRoute] = useState("home"); const [vehicle, setVehicle] = useState(null); const [bookingOpen, setBookingOpen] = useState(false); const [bookingVehicle, setBookingVehicle] = useState(null); const [locale, setLocale] = useState("en"); const [initialCategory, setInitialCategory] = useState(null); const [tweaks, setTweak] = useTweaks(TWEAK_DEFAULTS); // Imperative navigation exposed to inner components for simplicity useEffect(() => { window.go = (r) => { setRoute(r); window.scrollTo({top: 0}); }; window.openVehicle = (v) => { setVehicle(v); setRoute("vehicle"); window.scrollTo({top: 0}); }; window.openBooking = (v) => { setBookingVehicle(v); setBookingOpen(true); }; }, []); // Apply tweaks to CSS vars useEffect(() => { const root = document.documentElement; root.style.setProperty("--primary", tweaks.accent); // Derive secondary/accent shades from primary root.style.setProperty("--secondary", shade(tweaks.accent, -15)); root.style.setProperty("--accent", shade(tweaks.accent, 18)); root.style.setProperty("--font-display", `"${tweaks.displayFont}", "Saira", system-ui, sans-serif`); document.documentElement.dir = tweaks.rtl ? "rtl" : "ltr"; document.documentElement.lang = locale; }, [tweaks, locale]); // Open hero image swap via tweaks useEffect(() => { const heroImg = document.querySelector("[data-hero-img]"); if (heroImg) heroImg.src = HERO_IMAGES[tweaks.heroVariant] || HERO_IMAGES.huracan; }, [tweaks.heroVariant, route]); const handleSelect = (v) => { setVehicle(v); setRoute("vehicle"); window.scrollTo({top:0}); }; const handleBook = (v) => { setBookingVehicle(v); setBookingOpen(true); }; const handlePickCategory = (cat) => { setInitialCategory(cat); setRoute("fleet"); window.scrollTo({top:0}); }; return (
Flips layout direction. Use the EN/AR/RU/ZH switcher in the navbar for copy.
{meta.body}