/* global React */
(function(){
const { useState, useEffect } = React;
/* ───── NAV ───── */
function Nav({ i, lang, setLang, onQuote }){
const [open, setOpen] = useState(false);
const [scrolled, setScrolled] = useState(false);
useEffect(()=>{
const onScroll = ()=> setScrolled(window.scrollY > 40);
window.addEventListener('scroll', onScroll);
return ()=> window.removeEventListener('scroll', onScroll);
}, []);
const langs = [['en','EN'],['ar','العربية'],['ru','RU'],['zh','中文']];
return (
);
}
/* ───── HERO ───── */
function Hero({ i, lang, onQuote, showTech }){
const [clock, setClock] = useState('');
useEffect(()=>{
const tick = ()=>{
const d = new Date();
const fmt = (z)=> d.toLocaleTimeString('en-GB',{ timeZone:z, hour:'2-digit', minute:'2-digit' });
setClock({
dxb: fmt('Asia/Dubai'),
lbg: fmt('Europe/Paris'),
bqh: fmt('Europe/London'),
xsp: fmt('Asia/Singapore'),
sbj: fmt('America/Sao_Paulo'),
});
};
tick();
const t = setInterval(tick, 30000);
return ()=> clearInterval(t);
}, []);
return (
{i.hero.eyebrow}
{i.hero.title}
{i.hero.sub}
{showTech && (
)}
);
}
function Stat({n,label,sub}){
return (
{n}
{label}
{sub &&
{sub}
}
);
}
/* ───── OPS TICKER ───── */
function OpsTicker({ i }){
const cities = [
'DXB · Dubai International HQ',
'DWC · Al Maktoum — Dubai South',
'LBG · Paris Le Bourget',
'BQH · London Biggin Hill',
'XSP · Singapore Seletar',
'RAK · Marrakech Menara',
'CMN · Casablanca Mohammed V',
'ABJ · Abidjan Félix-Houphouët',
'SBJ · São Paulo Catarina — LatAm HQ',
'LIN · Milan Linate Prime · early 2026',
'IST · Istanbul · in development',
];
return (
{i.sections.ops}
{[...cities, ...cities].map((c,k)=>(
{c}
))}
);
}
window.JetexUI1 = { Nav, Hero, OpsTicker };
/* ───── ICONS ───── */
function Arrow(){return ;}
function WhatsIcon(){return ;}
window.JetexUI1.Arrow = Arrow;
window.JetexUI1.WhatsIcon = WhatsIcon;
})();