/* Aerovista — App root */ const { useState: useStateApp, useEffect: useEffectApp } = React; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "lang": "en", "accent": "verified", "heroImage": "img3488" }/*EDITMODE-END*/; function App() { const [page, setPage] = useStateApp("home"); const [modal, setModal] = useStateApp({ open: false, prefill: null }); const [t, setT] = useTweaks(TWEAK_DEFAULTS); // RTL + accent on useEffectApp(() => { const html = document.documentElement; html.setAttribute("dir", t.lang === "ar" ? "rtl" : "ltr"); html.setAttribute("lang", t.lang || "en"); html.setAttribute("data-accent", t.accent || "verified"); }, [t.lang, t.accent]); // hero image sync useEffectApp(() => { const map = { img3488: "media/aircraft-owned-img3488.webp", img3481: "media/aircraft-owned-img3481.webp", ramp: "media/aircraft-owned-ramp-1.webp", wide1: "media/aircraft-fleet-wide-1.webp", }; const apply = () => { const el = document.querySelector(".hero__img"); if (el) el.style.backgroundImage = `url(${map[t.heroImage] || map.img3488})`; }; apply(); const id = setTimeout(apply, 50); return () => clearTimeout(id); }, [t.heroImage, page]); function openEnquiry(prefill) { setModal({ open: true, prefill: prefill || null }); } function closeEnquiry() { setModal({ open: false, prefill: null }); } useEffectApp(() => { window.scrollTo({ top: 0, behavior: "smooth" }); }, [page]); let pageEl = null; if (page === "home") pageEl = ; else if (page === "services") pageEl = ; else if (page.startsWith("svc:")) pageEl = ; else if (page === "fleet") pageEl = ; else if (page === "group") pageEl = ; else if (page === "news") pageEl = ; else if (page === "contact") pageEl = ; else pageEl = ; return ( <>