// pages.jsx — secondary page components for the A&A prototype // Loaded after app.jsx so all components are in the Babel global scope. // ─────────────────────────── EXPERTISE HUB ─────────────────────────── function ExpertisePage({ lang }) { const ar = lang === "ar"; const [filter, setFilter] = useState("all"); const visible = filter === "flagship" ? PRACTICES.filter(p => p.flagship) : PRACTICES; return (
Expertise

{ar ? "مجالات الممارسة وقطاعات العمل." : <>Twenty-seven practice areas.
Eleven industry sectors.}

{ar ? "نُقدّم خدمات قانونية شاملة عبر الإمارات الثلاث الكبرى ومركز دبي المالي العالمي، ومن مكتبنا في تورنتو، كندا." : "Full-service across Dubai, Abu Dhabi, Sharjah and the DIFC, with an international office in Toronto. The two taxonomies — practice areas and industry sectors — are kept distinct, as the firm does."}

Practice areas
{visible.map((p, i) => ( go("/expertise/" + p.slug)}>
{String(PRACTICES.indexOf(p) + 1).padStart(2, "0")}
{p.name}
{p.lede ?

{p.lede}

: null}
))}

Industry sectors

{ar ? "قطاعات العمل." : "Where our clients operate."}

A separate taxonomy from practice areas — industries served, not legal disciplines.

{SECTORS.map(s => ( {s} ))}
); } // ─────────────────────────── PRACTICE DETAIL ─────────────────────────── function PracticePage({ slug, lang }) { const p = PRACTICES.find(x => x.slug === slug) || PRACTICES[0]; const leadPeople = (p.leads || []).map(id => PEOPLE.find(x => x.id === id)).filter(Boolean); const relatedArticles = ARTICLES.filter(a => a.area === slug).slice(0, 3); const idx = PRACTICES.indexOf(p); return (
go("/expertise")}>← All expertise
Practice area · {String(idx + 1).padStart(2, "0")} / 27

{p.name}

{p.ranking && (

★ Ranked by {p.ranking.dir} — {p.ranking.area}. {p.ranking.year}

)}
{p.detail ? ( p.detail.map((para, i) =>

{para}

) ) : (

{p.lede || `The firm advises on ${p.name.toLowerCase()} matters across the UAE and the wider region.`}

To confirm Full practice description to be pulled from /expertise/{p.slug}/ on the live site before publication — the firm's own verified copy, not invented.

)} {p.flagship && (
{p.slug === "dispute-resolution" ? <>"The team has a sophisticated attitude combined with real on-the-ground experience of how the UAE legal system works in practice."— The Legal 500 EMEA : <>"Excellent individuals and team with great technical skills and well-able to hold their own against top firms from London and elsewhere."— The Legal 500 EMEA}
)} {leadPeople.length > 0 && (
Group leads
{leadPeople.map(l => )}
)}
); } // ─────────────────────────── PEOPLE HUB ─────────────────────────── function PeoplePage({ lang }) { const ar = lang === "ar"; const [filter, setFilter] = useState("all"); const sorted = [...PEOPLE].sort((a, b) => a.rank - b.rank); let visible = sorted; if (filter === "partners") visible = sorted.filter(p => /Partner/i.test(p.role) && !/Senior Consultant/.test(p.role)); if (filter === "consultants") visible = sorted.filter(p => /Consultant/.test(p.role)); if (filter === "associates") visible = sorted.filter(p => /Associate/i.test(p.role)); if (filter === "other") visible = sorted.filter(p => /Barrister|Legal Consultant/.test(p.role) && !/Senior Consultant/.test(p.role)); return (
{ar ? AR.navPeople : "People"}

{ar ? "الشركاء والمحامون." : <>Our partners, consultants & lawyers.}

Multi-specialist partners with deep local, regional and international experience. {PEOPLE.length} captured — full roster on the live site.

{[ ["all", "All"], ["partners", "Partners"], ["consultants", "Senior Consultants"], ["associates", "Senior Associates"], ["other", "Barrister & Legal Consultant"] ].map(([k, lab]) => ( ))}
{visible.map(p => )}

Consent Portrait publication is flagged for individual consent before launch. Per-lawyer bar admissions, qualifications and languages are pulled from each lawyer's verified profile page — not inferred.

); } // ─────────────────────────── LAWYER PROFILE (overlay) ─────────────────────────── function LawyerPage({ slug, lang }) { const p = PEOPLE.find(x => x.id === slug); const close = () => go("/people"); useEffect(() => { const h = (e) => { if (e.key === "Escape") close(); }; window.addEventListener("keydown", h); return () => window.removeEventListener("keydown", h); }, []); if (!p) return null; const linked = (p.practices || []).map(s => PRACTICES.find(x => x.slug === s)).filter(Boolean); const isFounder = p.id === "amjad-ali-khan"; return (
e.stopPropagation()}>
{p.name}
{p.role}{isFounder ? " · Joined 1975" : (p.joined ? ` · Joined ${p.joined}` : "")}

{p.name}

{p.bio ? (

{p.bio}

) : (

To confirm Practice headings, bar admissions, qualifications and languages will be pulled verbatim from this lawyer's own profile page on the live site.

)}
Practice areas
{linked.length > 0 ?
{linked.map(l => l.name).join(" · ")}
:
To pull from profile
}
Office
{p.office}
Bar admissions
To pull from profile
Languages
To pull from profile
); } // ─────────────────────────── INSIGHTS / inBrief ─────────────────────────── function InsightsPage({ lang }) { const [filter, setFilter] = useState("all"); const filtered = filter === "all" ? ARTICLES : ARTICLES.filter(a => a.area === filter); const areas = [...new Set(ARTICLES.map(a => a.area))].map(s => PRACTICES.find(p => p.slug === s)).filter(Boolean); return (
Insights · inBrief

The firm's branded legal-updates series.

Concise commentary on UAE legislative and regulatory developments, plus longer publications and newsletters.

{areas.map(a => ( ))}
{filtered.map(a => ( alert("Article view — inBrief detail page.")}>
{a.date}
{a.title}
{a.areaLabel}
))}
); } // ─────────────────────────── OFFICES HUB ─────────────────────────── function OfficesPage({ lang }) { return (
Offices

Four offices, never merged.

Licensed across the three largest Emirates and the DIFC. Toronto is the firm's international office in Canada — not UAE-regulated.

{OFFICES.map(o => (
go("/offices/" + o.slug)} style={{ cursor: "pointer" }}>
{o.country} · {o.label} · Since {o.since}

{o.city}

{o.address.join(", ")}
{o.flag &&
Flag {o.flag}
}
))}
); } // ─────────────────────────── OFFICE DETAIL ─────────────────────────── function OfficePage({ slug, lang }) { const o = OFFICES.find(x => x.slug === slug); if (!o) return null; const mapQ = encodeURIComponent(o.address.join(", ")); return (
go("/offices")}>← All offices
{o.country} · {o.label}

{o.city}

Address
{o.address.join(", ")}
Phone
{o.phone}
Email
{o.email}
Hours

UnverifiedOffice hours are not currently published — to be confirmed before launch.

MAP — PLACE SEARCH
by verified address

coords not published —
place lookup at launch
Open in Maps
Contact this office

Send an enquiry routed to {o.email}.

{o.note && (

{o.note}

)}
); } // ─────────────────────────── ABOUT ─────────────────────────── function AboutPage({ lang }) { const timeline = [ { y: "1975", t: "Firm founded in Dubai", body: "M.A.K. Afridi opens the firm in the Kuwaiti Building, Deira, Dubai." }, { y: "1976", t: "Sharjah office opens", body: "Licensed in the Emirate of Sharjah." }, { y: "1981", t: "Abu Dhabi office opens", body: "Licensed in the Emirate of Abu Dhabi." }, { y: "2000", t: "Move to Emirates Towers", body: "Dubai office relocates to Jumeirah Emirates Towers, Sheikh Zayed Road." }, { y: "2016", t: "Bashir Ahmed elected Managing Partner", body: "Effective 1 November 2016. Joined the firm in 1988." }, { y: "2025", t: "Fifty years of practice", body: "The firm marks 50 years advising clients in the Middle East and beyond." } ]; return (
About the firm

Fifty years of UAE practice — true to the principles of its founders.

Afridi & Angell is one of the most established law firms in the UAE. Founded in 1975 by M.A.K. Afridi, the firm is in its fifth decade at the forefront of the legal community. It is licensed in the three largest Emirates — Abu Dhabi, Dubai and Sharjah — as well as the Dubai International Financial Centre, with an international office in Toronto, Canada.

The firm describes itself as remaining "true to the principles of its founders — focusing on excellence and retention of exceptional talent." Multi-specialist partners offer pragmatic local-law advice combined with international quality.

Source: /about/ · overview.md. Founder principles quoted verbatim from the firm.

Firm photo — subject to confirmation.


Timeline

Fifty years, in milestones.

{timeline.map(it => (
{it.y}
{it.t}
{it.body}
))}
Networks

Independent network memberships.

Lex Mundi

Afridi & Angell is the exclusive UAE member firm of Lex Mundi, "the world's leading network of independent law firms." Membership gives clients preferred access to 21,000+ lawyers in 100+ countries.

Figures attributed to Lex Mundi · Badge usage rights to confirm before publication.

World Services Group

Member of WSG — a global multidisciplinary network connecting member firms across professional services.

Badge usage rights to confirm.


Editorial recognition
{QUOTES.slice(0, 4).map((q, i) => (
"{q.text}" — {q.source}
))}

All quotes are independent editorial assessments from legal directories — they are not client testimonials. No aggregate star rating is published or claimed.

); } // ─────────────────────────── CONTACT ─────────────────────────── function ContactPage({ lang }) { const [sent, setSent] = useState(false); const [form, setForm] = useState({ name: "", org: "", email: "", phone: "", office: "Dubai", practice: "", message: "" }); const onChange = (k) => (e) => setForm(f => ({ ...f, [k]: e.target.value })); const onSubmit = (e) => { e.preventDefault(); setSent(true); }; return (
Contact · Request a consultation

Speak to a partner.

Briefly describe your matter. We'll route your enquiry to the appropriate practice group and office.

{sent ? (
Received · Demo

Thank you, {form.name.split(" ")[0] || "we have your message"}.

In the live build, your enquiry would be sent to {form.office.toLowerCase()}@afridi-angell.com and posted to the firm's CRM webhook. Demo only — no message has been transmitted.

) : (