/* global React, ReactDOM, Navbar, Footer, WhatsAppFab, HomePage, InventoryPage, VehiclePage, ConsignmentPage, SellPage, FinancePage, AboutPage, ContactPage, CV_INVENTORY, useTweaks, TweaksPanel, TweakSection, TweakRadio, TweakSelect, TweakToggle, TweakColor */ const { useState, useEffect, useMemo } = React; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accent": "champagne", "display": "grotesque", "density": "regular", "anim": "on", "paperHero": false }/*EDITMODE-END*/; function App() { const [page, setPage] = useState({ name: "home" }); const [tweaks, setTweak] = useTweaks(TWEAK_DEFAULTS); // scroll to top on page change useEffect(() => { window.scrollTo({ top: 0, behavior: "instant" }); }, [page]); // page-change announcement for any deck-style host useEffect(() => { const order = ["home", "inventory", "vehicle", "consignment", "sell", "finance", "about", "contact"]; const idx = order.indexOf(page.name); window.parent?.postMessage?.({ slideIndexChanged: Math.max(0, idx) }, "*"); }, [page]); const openVehicle = v => setPage({ name: "vehicle", vehicleId: v.id }); const currentVehicle = page.name === "vehicle" ? CV_INVENTORY.find(v => v.id === page.vehicleId) || CV_INVENTORY[0] : null; const darkNav = page.name === "home" || page.name === "vehicle" || page.name === "consignment" || page.name === "about"; return (