/* Main App — Deals on Wheels */ const { useState: useStateA, useEffect: useEffectA, useCallback: useCallbackA } = React; function App() { // Tweak defaults — accent + theme intensity + density const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accent": "gold", "darkLevel": "noir", "displayFont": "Cormorant Infant", "showStockBanner": true }/*EDITMODE-END*/; const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); // Routing const [route, setRoute] = useStateA({ name: "home", data: null }); const navigate = useCallbackA((name, data = null) => { setRoute({ name, data }); window.scrollTo({ top: 0, behavior: "instant" }); }, []); // Apply accent live useEffectA(() => { const root = document.documentElement; const accents = { gold: ["#C4A24A", "#8E732F", "#D9BC73"], signal: ["#FF4605", "#B53400", "#FF7D49"], platinum: ["#D9D2C0", "#8A8676", "#EFE9DA"], }; const [g, deep, soft] = accents[t.accent] || accents.gold; root.style.setProperty("--gold", g); root.style.setProperty("--gold-deep", deep); root.style.setProperty("--gold-soft", soft); }, [t.accent]); useEffectA(() => { const root = document.documentElement; if (t.darkLevel === "midnight") { root.style.setProperty("--noir", "#040508"); root.style.setProperty("--ink", "#0C0E12"); root.style.setProperty("--ink-2", "#11141A"); } else if (t.darkLevel === "graphite") { root.style.setProperty("--noir", "#16181C"); root.style.setProperty("--ink", "#1E2227"); root.style.setProperty("--ink-2", "#252A31"); } else { root.style.setProperty("--noir", "#0B0D10"); root.style.setProperty("--ink", "#15181C"); root.style.setProperty("--ink-2", "#1B1F24"); } }, [t.darkLevel]); useEffectA(() => { document.documentElement.style.setProperty("--display", `"${t.displayFont}", "Cormorant Garamond", serif`); }, [t.displayFont]); // Enquiry modal const [enquiry, setEnquiry] = useStateA({ open: false, vehicle: null, mode: "enquire" }); const openEnquiry = (opts = {}) => setEnquiry({ open: true, vehicle: opts.vehicle || null, mode: opts.mode || "enquire" }); const closeEnquiry = () => setEnquiry(e => ({ ...e, open: false })); // Render let page = null; switch (route.name) { case "inventory": page = ; break; case "vehicle": page = ; break; case "sell": page = ; break; case "finance": page = ; break; case "about": page = ; break; case "contact": page = ; break; case "metaverse": page = ; break; default: page = ; } const screenLabel = route.name === "vehicle" ? `Vehicle · ${route.data?.make || ""} ${route.data?.model || ""}` : route.name.charAt(0).toUpperCase() + route.name.slice(1); return ( <>
openEnquiry({ mode: "contact" })} /> {page}
openEnquiry({ mode: "contact" })} />
setTweak("accent", v)} /> setTweak("darkLevel", v)} /> setTweak("displayFont", v)} />
{[ ["home", "Home"], ["inventory", "Inventory"], ["vehicle-demo", "Vehicle Page"], ["sell", "Sell / Trade"], ["finance", "Finance"], ["metaverse", "Virtual"], ["about", "About"], ["contact", "Contact"], ].map(([id, label]) => ( ))}
); } ReactDOM.createRoot(document.getElementById("root")).render();