/* Centaurus Charter — app shell */ const { useState: useStateA, useEffect: useEffectA, useRef: useRefA } = React; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accentMode": "gold", "showRouteBanner": true, "density": "comfortable" }/*EDITMODE-END*/; function App() { const [screen, setScreen] = useStateA('home'); const [param, setParam] = useStateA(null); const [lang, setLang] = useStateA('EN'); const [bookingOpen, setBookingOpen] = useStateA(false); const [prefill, setPrefill] = useStateA(''); const [lightbox, setLightbox] = useStateA(null); const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); const goto = (s, p) => { setScreen(s); setParam(p || null); window.scrollTo({ top: 0, behavior: 'instant' }); }; const openBook = (yachtSlug) => { setPrefill(yachtSlug || ''); setBookingOpen(true); }; const closeBook = () => setBookingOpen(false); // Apply accent override useEffectA(() => { const root = document.documentElement; if (t.accentMode === 'amber') { root.style.setProperty('--gold', '#E8A93C'); root.style.setProperty('--gold-soft', '#F0BD5C'); } else if (t.accentMode === 'rose') { root.style.setProperty('--gold', '#E76E55'); root.style.setProperty('--gold-soft', '#F08A77'); } else { root.style.setProperty('--gold', '#F7CE05'); root.style.setProperty('--gold-soft', '#F5E812'); } }, [t.accentMode]); const isDarkHero = (screen === 'home' || screen === 'yacht' || screen === 'destination' || screen === 'experience'); const [scrolled, setScrolled] = useStateA(false); useEffectA(() => { const handler = () => setScrolled(window.scrollY > 60); window.addEventListener('scroll', handler); handler(); return () => window.removeEventListener('scroll', handler); }, []); let body; if (screen === 'home') body = ; else if (screen === 'fleet') body = ; else if (screen === 'yacht') body = ; else if (screen === 'destinations') body = ; else if (screen === 'destination') body = ; else if (screen === 'experiences') body = ; else if (screen === 'experience') body = ; else if (screen === 'watersports') body = ; else if (screen === 'about') body = ; else if (screen === 'contact') body = ; else body = ; // Decide nav style based on screen + scroll const wantDark = isDarkHero && !scrolled; return (
{/* Demo banner */} {t.showRouteBanner && (
New · Route ideas now live · 6 curated Dubai cruises  ·  Book in minutes on WhatsApp +971 52 490 1269
)}
); } ReactDOM.createRoot(document.getElementById('root')).render();