/* REVO JURIS — Header, mobile drawer, video hero, stats (single-language) */
function Brand({ footer }) {
const onDark = footer;
const src = onDark ? 'assets/logomark-inverse.svg' : 'assets/logomark.svg';
return (
REVO JURIS
Consulting Limited
億誠國際法律顧問有限公司
);
}
function Header({ onEnquire, lang, setLang }) {
const tx = useTx();
const [scrolled, setScrolled] = React.useState(false);
const [drawer, setDrawer] = React.useState(false);
React.useEffect(() => {
const onScroll = () => setScrolled(window.scrollY > 12);
window.addEventListener('scroll', onScroll);
return () => window.removeEventListener('scroll', onScroll);
}, []);
const cjk = lang === 'ZH' ? ' cjk' : '';
return (
{tx(UI.hotShort)} · +852 5715 5628
{tx(UI.langs)}
{NAV_LINKS.map(([t, h]) =>
setDrawer(false)}>{tx(t)})}
);
}
function HeroDebtSlide({ active }) {
const lang = useLang();
const tx = useTx();
const cjk = lang === 'ZH' ? ' cjk' : '';
const h1 = tx(HERO_DEBT.h1);
return (
{tx(HERO_DEBT.eyebrow)}
{h1[0]}
{h1[1]}
{tx(HERO_DEBT.sub)}
{(tx(HERO_DEBT.price)).map((line, i) => {line})}
{tx(HERO_DEBT.note)}
);
}
function HeroReferralSlide({ active, onHotline, onFees }) {
const lang = useLang();
const tx = useTx();
const cjk = lang === 'ZH' ? ' cjk' : '';
const h1 = tx(HERO.h1);
return (
{tx(HERO.eyebrow)}
{h1[0]}
{h1[1]}
{tx(HERO.lede)}
{HERO.trust.map((c, i) => (
{tx(c.t)}
))}
);
}
function Hero({ onEnquire, onHotline, onFees }) {
const [idx, setIdx] = React.useState(0);
const [paused, setPaused] = React.useState(false);
const SLIDES = 2;
React.useEffect(() => {
if (paused) return;
const t = setInterval(() => setIdx(i => (i + 1) % SLIDES), 6500);
return () => clearInterval(t);
}, [paused]);
return (
setPaused(true)} onMouseLeave={() => setPaused(false)}>
{Array.from({ length: SLIDES }).map((_, i) => (
);
}
function Stats() {
const lang = useLang();
const tx = useTx();
const cjk = lang === 'ZH' ? ' cjk' : '';
return (
{STATS.map(([n, label], i) => (
{tx(n)}
{tx(label)}
))}
);
}
Object.assign(window, { Header, Hero, Stats, Brand });