/* Pages: Home, Practices, PracticeDetail, Experts, ExpertProfile, Insights, About, Contact */
const HomePage = ({ setPage, openConsult, locale, t }) => (
<>
{/* Hero */}
{t('heroEyebrow', 'Emirati-founded · Established 1999')}
{locale === 'AR' ? <>
{t('heroH1', '')}
{t('heroH1b', '')}
> : <>
Born local, advising global.
Disputes focused.
>}
{locale === 'AR' ? t('heroSub', '') :
'Established 1999, an Emirati-founded firm of 75+ UAE, GCC and international lawyers across Dubai and Abu Dhabi. We resolve business-critical disputes \u2014 in litigation, arbitration, and ADR \u2014 for corporates, boards, financial institutions and governments.'}
{t('consultCta', 'Request a consultation')}
setPage('practices')}>
{t('exploreCta', 'Explore practices')}
B1
Chambers Global Band 1 — UAE Dispute Resolution: Domestic
2024 · 2025
Chambers ME — UAE Disputes Firm of the Year
Burj Al Salam, Sheikh Zayed Road · Dubai HQ
{[...Array(2)].flatMap((_, n) => ['DIAC', 'arbitrateAD', 'IICRA', 'SCCA', 'LCIA', 'SIAC', 'ICC', 'DIFC Courts', 'ADGM Courts', 'UAE Court of Cassation', 'CIArb (FCIArb)', 'IBA', 'HKIAC']
.map((x, i) => {x} ))}
{/* Firm at a glance */}
The firm at a glance
Firm-stated metrics, attributed.
Source: Horizons & Co.
{FIRM_GLANCE.map((g, i) => (
{g.num}
{g.lbl}
))}
{/* Practices */}
setPage('practices')}>All practices }
/>
{PRACTICES.slice(0, 9).map(p => (
setPage('practice/' + p.id)} />
))}
{/* Recent outcomes — Success Stories on dark */}
Real Estate · Court of Cassation
AED 248.5M
Dismissal of a claim against a major UAE real-estate developer — secured across three judicial tiers, with final dismissal at the Court of Cassation.
Apr 9, 2026 Dispute Resolution
Banking · Bankruptcy
AED 18.8bn
Landmark victory defending a former board director in proceedings under the UAE Bankruptcy Law.
Mar 16, 2026 Banking & Finance
Director defence · 3 tiers
AED 17.6M
Complete victory for a company director across all three levels of the UAE court system.
Mar 11, 2026 Dispute Resolution
setPage('insights')}>All success stories
{/* Experts strip */}
setPage('experts')}>Full directory }
/>
{EXPERTS.slice(0, 6).map(e => (
setPage('expert/' + e.id)} />
))}
{/* Awards */}
{/* client logos */}
Acted for (selected, with permission required at build)
{CLIENT_LOGOS.map(c => (
))}
{/* Insights teaser */}
setPage('insights')}>All insights }
/>
{INSIGHTS.slice(0, 3).map((i, idx) => (
0} onClick={() => setPage('insights')} />
))}
{/* CTA */}
Engagement by consultation
Discuss a matter, in confidence.
Reply within one business day. EN · AR · RU · ZH. Routed to the most appropriate partner for the matter.
{/* Offices */}
{OFFICES.map(o => (
{o.label}
{o.city}
Address {o.address.map((a, i) =>
{a}
)}
))}
>
);
// ============================ PRACTICES HUB ============================
const PracticesPage = ({ setPage, locale }) => (
<>
{PRACTICES.map(p => (
setPage('practice/' + p.id)} />
))}
>
);
// ============================ PRACTICE DETAIL ============================
const PracticeDetailPage = ({ id, setPage, openConsult }) => {
const p = PRACTICES.find(x => x.id === id);
if (!p) return
Practice not found.
;
const relatedExperts = EXPERTS.filter(e => e.filters?.some(f => p.id.startsWith(f) || f === p.id.split('-')[0])).slice(0, 4);
const relatedInsights = INSIGHTS.filter(i => i.practice.toLowerCase().includes(p.title.toLowerCase().split(' ')[0].toLowerCase())).slice(0, 3);
return (
<>
{p.detail}
openConsult({ practice: p.id })}>Request a consultation
{p.subs?.length ? (
Sub-practices
Scope of work.
{p.subs.map((s, i) => (
{s}
Included within {p.title}.
))}
) : null}
{p.institutions ? (
Courts & institutions
Where we appear.
{p.institutions}
) : null}
{relatedExperts.length ? (
Related experts
Practitioners in this group.
{relatedExperts.map(e => setPage('expert/' + e.id)} />)}
) : null}
{relatedInsights.length ? (
Related insights
Recent work & analysis.
{relatedInsights.map((i, idx) => 0} onClick={() => setPage('insights')} />)}
) : null}
Engagement by consultation
Discuss a {p.title.toLowerCase()} matter.
Pre-routed to the {p.title} partner. Reply within one business day, in your preferred language.
>
);
};
// ============================ EXPERTS ============================
const ExpertsPage = ({ setPage }) => {
const [filter, setFilter] = useState('all');
const filters = [
{ id: 'all', label: 'All' },
{ id: 'partners', label: 'Partners' },
{ id: 'arbitration', label: 'Arbitration' },
{ id: 'corporate', label: 'Corporate' },
{ id: 'dispute-resolution', label: 'Dispute Resolution' },
{ id: 'private-notary', label: 'Private Notary' },
];
const filtered = filter === 'all' ? EXPERTS : EXPERTS.filter(e => e.filters?.includes(filter));
const counts = useMemo(() => Object.fromEntries(filters.map(f => [f.id, f.id === 'all' ? EXPERTS.length : EXPERTS.filter(e => e.filters?.includes(f.id)).length])), []);
return (
<>
{filtered.map(e => setPage('expert/' + e.id)} />)}
{filtered.length === 0 ?
No experts in this filter.
: null}
⚠️ Portrait photography is being commissioned for the wider team. Founder portrait (Adv. Ali Al Zarooni) is pending — placeholder shown.
>
);
};
// ============================ EXPERT PROFILE ============================
const ExpertProfilePage = ({ id, setPage, openConsult }) => {
const e = EXPERTS.find(x => x.id === id);
if (!e) return Expert not found.
;
return (
<>
{e.placeholder ?
:
}
{e.verified ?
Verified :
Client to confirm }
Direct
{e.phone ?
:
Direct line on request
}
{e.email ?
:
info@horizlaw.ae
}
Languages: {e.languages?.join(', ')}
{e.name}
{e.role}
{e.practices?.map((p, i) => (
{p}
))}
{e.bio}
Education & Qualifications
{e.education.map((x, i) => {x} )}
Licensed before
{e.licensed.map((x, i) => {x} )}
Professional memberships
{e.memberships.map((x, i) => {x} )}
openConsult({ lawyer: e.id })}>Request consultation with {e.name.split(' ')[0]}
>
);
};
// ============================ INSIGHTS ============================
const InsightsPage = () => {
const [cat, setCat] = useState('all');
const cats = ['all', ...Array.from(new Set(INSIGHTS.map(i => i.cat)))];
const filtered = cat === 'all' ? INSIGHTS : INSIGHTS.filter(i => i.cat === cat);
const feature = filtered[0];
const rest = filtered.slice(1);
return (
<>
{feature ? (
{feature.cat} · {feature.practice}
{feature.title}
{feature.excerpt}
{feature.date}
Read in full
) : null}
{rest.map(i => )}
>
);
};
// ============================ ABOUT ============================
const AboutPage = ({ openConsult }) => (
<>
Three lawyers became seventy-five. The firm was founded in 1999 by Adv. Ali Al Zarooni , two years after he graduated from the United Arab Emirates University with a degree in Sharia Law.
The proposition has been steady: be the UAE firm that international clients can rely on for the hardest dispute, with no compromise on local depth. Today that means Chambers Global Band 1 for UAE Dispute Resolution: Domestic, and back-to-back recognition as Chambers Middle East UAE Domestic Dispute Resolution Firm of the Year for 2024 and 2025.
— Adv. Ali Al Zarooni, Founder & Managing Partner
Timeline
Twenty-five years and counting.
{TIMELINE.map((s, i) => (
))}
Values
How we work.
{VALUES.map((v, i) => (
))}
{['firm-photo-people-001.webp', 'about-001.webp', 'about-003.webp'].map((src, i) => (
))}
Work with us, or come work with us.
Consultation enquiries, partnerships, or careers — we are interested in conversations.
openConsult({})}>Request consultation
Careers →
>
);
// ============================ CONTACT ============================
const ContactPage = ({ openConsult }) => {
const [form, setForm] = useState({ name: '', email: '', subject: '', message: '' });
const [sent, setSent] = useState(false);
return (
<>
Offices
{OFFICES.map((o, idx) => (
{o.label}
{o.city}
{o.address.map((a, i) =>
{a}
)}
))}
Office hours, map coordinates and the role of the secondary Dubai numbers will be confirmed before publish.
Follow on LinkedIn
>
);
};
Object.assign(window, { HomePage, PracticesPage, PracticeDetailPage, ExpertsPage, ExpertProfilePage, InsightsPage, AboutPage, ContactPage });