// Nav, LiveBadge, Hero, Marquee, Stats // Reads from window.locale set by index.html function Nav() { const C = COPY[window.locale]; return ( ); } function LiveBadge() { const C = COPY[window.locale]; const [n, setN] = React.useState(() => Math.floor(Math.random() * 3000) + 11000); React.useEffect(() => { const interval = 3000 + Math.random() * 4000; const t = setInterval(() => { setN(v => v + Math.floor(Math.random() * 5) - 2); }, interval); return () => clearInterval(t); }, []); return (
); } function Hero() { const C = COPY[window.locale]; return (

{C.hero1}
{C.hero2}

{C.heroSub}

{C.anchor1} {C.anchor2}

{C.cta} {C.cta2}
{C.trust.map(t => (
{t}
))}
); } function Marquee() { const C = COPY[window.locale]; const r1a = row1partners.map((logo, i) => React.cloneElement(logo, { key: 'r1a' + i })); const r1b = row1partners.map((logo, i) => React.cloneElement(logo, { key: 'r1b' + i })); const r2a = row2partners.map((logo, i) => React.cloneElement(logo, { key: 'r2a' + i })); const r2b = row2partners.map((logo, i) => React.cloneElement(logo, { key: 'r2b' + i })); return (
{C.marqueeLabel}
); } function Stats() { const C = COPY[window.locale]; const items = [ ["2 400+", C.statsLabels[0]], ["4.9 / 5", C.statsLabels[1]], ["15 min", C.statsLabels[2]], ["99 %", C.statsLabels[3]], ]; return (
{items.map(([num, lbl]) => (
{num}
{lbl}
))}
); } Object.assign(window, { Nav, Hero, Marquee, Stats });