// 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 (
{C.live(n)}
);
}
function Hero() {
const C = COPY[window.locale];
return (
{C.hero1}
{C.hero2}
{C.heroSub}
{C.anchor1}
{C.anchor2}
{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}
{r1a}{r1b}
{r2a}{r2b}
);
}
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]) => (
))}
);
}
Object.assign(window, { Nav, Hero, Marquee, Stats });