/* global React, BsaLogo, I, SERVICES, INDUSTRIES, HUBS, OFFICES, STRINGS */ const { useState: useStateNav, useEffect: useEffectNav, useRef: useRefNav } = React; // ─── Top utility strip ──────────────────────────────────────────────── function TopStrip({ locale, setLocale, onEnquire, t }) { return (
Dubai HQ +971 4 528 5555 · info@bsalaw.com
Formerly Ahmad Bin Hezeem & Associates ·
); } function LanguageSwitch({ locale, setLocale }) { const langs = [ { code: "en", label: "EN" }, { code: "ar", label: "العربية" }, { code: "ru", label: "RU" }, { code: "zh", label: "中文" }, ]; return (
{langs.map((l, i) => ( {i > 0 && /} ))}
); } // ─── Mega Menu Expertise ────────────────────────────────────────────── function ExpertiseMega({ onClose, navigate, t }) { return (
Services · 17 practice areas
{SERVICES.map((s) => ( { e.preventDefault(); navigate("expertise"); onClose(); }} href="#" style={{ display: "block", padding: "7px 0", fontSize: 15, color: "var(--ink-2)", breakInside: "avoid", borderBottom: "1px solid transparent", transition: "color .2s ease" }} onMouseEnter={(e) => { e.currentTarget.style.color = "var(--accent)"; }} onMouseLeave={(e) => { e.currentTarget.style.color = "var(--ink-2)"; }}> {s.flagship && } {s.name} ))}
Industries · 11 sectors
{INDUSTRIES.map((i) => ( { e.preventDefault(); navigate("expertise"); onClose(); }} style={{ display: "block", padding: "7px 0", fontSize: 15, color: "var(--ink-2)" }} onMouseEnter={(e) => { e.currentTarget.style.color = "var(--accent)"; }} onMouseLeave={(e) => { e.currentTarget.style.color = "var(--ink-2)"; }}> {i} ))}
Hubs · 3
{HUBS.map((h) => ( { e.preventDefault(); navigate("expertise"); onClose(); }} style={{ display: "block", padding: "7px 0", fontSize: 15, color: "var(--ink-2)" }} onMouseEnter={(e) => { e.currentTarget.style.color = "var(--accent)"; }} onMouseLeave={(e) => { e.currentTarget.style.color = "var(--ink-2)"; }}> {h} ))}
Flagship

Dispute Resolution.

Chambers Band 3 · Legal 500 Tier 2 — UAE.

{ e.preventDefault(); navigate("expertise"); onClose(); }}> See practice
); } // ─── Offices dropdown ───────────────────────────────────────────────── function OfficesDropdown({ onClose, navigate }) { return (
{OFFICES.map((o) => ( { e.preventDefault(); navigate("offices"); onClose(); }} style={{ display: "block" }}>
{o.headquarters ? "HQ · " : ""}{o.country}
{o.city}
{o.phone}
))}
); } // ─── Main Nav ───────────────────────────────────────────────────────── function Nav({ page, navigate, onEnquire, locale, setLocale, t }) { const [hover, setHover] = useStateNav(null); // 'expertise' | 'offices' | null const [scrolled, setScrolled] = useStateNav(false); useEffectNav(() => { const onScroll = () => setScrolled(window.scrollY > 12); window.addEventListener("scroll", onScroll, { passive: true }); onScroll(); return () => window.removeEventListener("scroll", onScroll); }, []); const linkStyle = (k) => ({ padding: "8px 2px", fontFamily: "var(--mono)", fontSize: 12, letterSpacing: "0.12em", textTransform: "uppercase", color: page === k ? "var(--accent)" : "var(--ink)", borderBottom: page === k ? "1px solid var(--accent)" : "1px solid transparent", background: "transparent", border: 0, cursor: "pointer", }); const items = [ { k: "expertise", label: t.nav.expertise, hasMega: true }, { k: "people", label: t.nav.people }, { k: "insights", label: t.nav.insights }, { k: "offices", label: t.nav.offices, hasMega: true }, { k: "about", label: t.nav.about }, ]; return (
{hover === "expertise" && setHover(null)} navigate={navigate} t={t} />} {hover === "offices" && setHover(null)} navigate={navigate} />}
); } // ─── Footer ─────────────────────────────────────────────────────────── function Footer({ navigate, onEnquire, t }) { return ( ); } Object.assign(window, { Nav, Footer, TopStrip });