/* 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 (
{page.name === "home" && } {page.name === "inventory" && } {page.name === "vehicle" && currentVehicle && } {page.name === "consignment" && } {page.name === "sell" && } {page.name === "finance" && } {page.name === "about" && } {page.name === "contact" && }
); } const ACCENT_HEX = { champagne: "#C3A678", oxblood: "#9C3E2F", emerald: "#2F7C66", ivory: "#BDB39A" }; const HEX_TO_ACCENT = { "#C3A678": "champagne", "#9C3E2F": "oxblood", "#2F7C66": "emerald", "#BDB39A": "ivory" }; ReactDOM.createRoot(document.getElementById("root")).render();