/* Pages: Home, Exhibitions list+detail, Artists index+dossier */
const { useState: useStateP, useMemo: useMemoP } = React;
function HomePage({ onRoute, onEnquire }) {
const data = window.TGP_DATA;
const cur = data.current.exhibition;
return (
{/* HERO — Museum poster for the current exhibition */}
Nº 01
· Current exhibition · Dubai
Now on view {cur.datesShort}
Warehouse 31A · Alserkal Avenue
{cur.kicker}
Five& Painters
{cur.artists.map((a, i) => (
{a}
{i < cur.artists.length - 1 && · }
))}
{cur.curator}
Install view · 17.05.26 — present
Five Painters , install view, Warehouse 31A, Alserkal Avenue, May 2026.
Photo: gallery (subject mapped to source page; final credit & rights to confirm).
Dates
17 May — 11 July2026 · twenty-six days remaining
Opening
Friday 16 May6 — 9pm · open to the public
Location
Dubai · Warehouse 31AAlserkal Avenue · Lane 4 · Al Quoz 1
onRoute({ name: "exhibition", slug: cur.slug })}>
View exhibition
→
A project-led contemporary art gallery — Dubai & London — working across and between the Global South and the West, since 2013.
65
Artists in the programme · live
103
Exhibitions since 2013
{/* FEATURED EXHIBITION */}
onRoute({ name: "exhibitions" })}>All exhibitions → } />
onRoute({ name: "exhibition", slug: cur.slug })}>
Now showing · Dubai
{cur.title}
{cur.kicker} — {cur.artists.slice(0, 3).join(", ")} & 2 more
{cur.body}
Dates {cur.dates}
Opening {cur.opening.replace("Opening reception · ", "")}
Location {cur.location}
Curator {cur.curator.replace("Curated and text by ", "")}
{ e.stopPropagation(); onEnquire({ heading: "Enquire about Five Painters", sub: "Group exhibition · Dubai · 17.05 — 11.07.26", pre: { artist: cur.title, title: " — group exhibition, Dubai", img: cur.hero, note: "Credit & rights to confirm with gallery." } }); }}>
Enquire about works →
{ e.stopPropagation(); onRoute({ name: "exhibition", slug: cur.slug }); }}>
View exhibition →
{/* ONLINE TEASER */}
onRoute({ name: "online" })}>Enter viewing room → } />
onRoute({ name: "online" })}>
One work · one month
{data.current.online.title}
{data.current.online.artist} · 5 May — 2 June 2026
{data.current.online.blurb}
Format Online presentation
On view One oil painting
Access Public viewing room
{ e.stopPropagation(); onRoute({ name: "online" }); }}>
Enter viewing room →
{/* PRESS STRIP */}
In the press
{data.press.slice(0, 4).map((p, i) => (
"{p.title.length > 70 ? p.title.slice(0, 70) + "…" : p.title}" {p.outlet} · {p.date}
))}
onRoute({ name: "press" })}>All press →
{/* VISIT */}
onRoute({ name: "contact" })}>Plan a visit → } />
Primary space · Dubai Alserkal Avenue
Warehouse 31A, Lane 4 Alserkal Avenue, Al Quoz 1 Dubai, United Arab Emirates
Mon — Sat · 11am — 7pm GST · Closed 25–31 May for Eid Al Adha
+971 4 286 9627 · info@taymourgrahne.com
London Television Centre
Unit 2, Television Centre 101 Wood Lane · W12 7FA London, United Kingdom
By appointment only · please write ahead
info@taymourgrahne.com
);
}
/* ============== Exhibitions list ============== */
function ExhibitionsPage({ onRoute }) {
const [tab, setTab] = useStateP("current");
const data = window.TGP_DATA;
const filtered = data.exhibitions.filter((e) => e.status === tab);
const tabs = [
["current", "Current", 1],
["upcoming", "Upcoming", 0],
["past", "Past", 102]
];
return (
Exhibitions · since 2013
One hundred and threeexhibitions, and counting.
A project-led programme across Dubai, London and online — curated shows, solo presentations and
collaborations. Browse current and upcoming; the archive holds 102 past exhibitions, paginated.
{tabs.map(([k, label, n]) => (
setTab(k)}
style={{
padding: "16px 0",
fontFamily: "var(--mono)",
fontSize: 11.5,
letterSpacing: "0.14em",
textTransform: "uppercase",
color: tab === k ? "var(--text)" : "var(--muted)",
borderBottom: tab === k ? "1px solid var(--text)" : "1px solid transparent",
marginBottom: -1
}}
>
{label} · {n}
))}
Filter · All locations · Year
{filtered.map((ex) => (
))}
{tab === "upcoming" && filtered.length === 0 && (
No public dates announced yet — join the mailing list for the next programme.
)}
{tab === "past" && (
Load more — 92 archived
)}
);
}
function ExhibitionCard({ ex, onRoute }) {
return (
onRoute({ name: "exhibition", slug: ex.slug })}>
{ex.status === "current" &&
Now showing
}
);
}
/* ============== Exhibition detail ============== */
function ExhibitionDetailPage({ slug, onRoute, onEnquire }) {
const data = window.TGP_DATA;
const ex = data.exhibitions.find((e) => e.slug === slug) || data.exhibitions[0];
const cur = data.current.exhibition;
const isCurrent = ex.slug === cur.slug;
return (
onRoute({ name: "exhibitions" })} style={{ color: "var(--muted)" }}>← Exhibitions
/
{ex.title}
{ex.title} , install view{isCurrent ? ", Warehouse 31A, May 2026" : ""}.
Photo: gallery (subject mapped to source page; final credit & rights to confirm).
{isCurrent ? "Now showing · Dubai" : "Past exhibition"}
{ex.title}
{ex.by}
{isCurrent ? cur.body : "A project-led presentation continuing the gallery's painting-led conversation between the Global South and the West. Curatorial text, install views and a credited work list are available on request — the full press release can be downloaded from the press section."}
{isCurrent && (
Participating artists
{cur.artists.map((a, i) => (
onRoute({ name: "artist", name2: a })} style={{ display: "flex", justifyContent: "space-between", alignItems: "center", padding: "14px 0", borderBottom: "1px solid var(--border)", fontFamily: "var(--serif)", fontSize: 20, color: "var(--text)" }}>
{a} →
))}
)}
EXHIBITION DETAILS
Dates
{ex.dates}
{isCurrent &&
Opening
16 May 2026, 6 — 9pm
}
Location
{ex.where}{isCurrent ? " · Warehouse 31A" : ""}
{isCurrent &&
Curator
Sara bin Safwan
Hours
Mon–Sat 11–7
}
Prices
POA · by enquiry
onEnquire({ heading: "Enquire about " + ex.title, sub: ex.by + " · " + ex.dates, pre: { artist: ex.title, title: " — " + ex.by, img: ex.img, note: "Credit & rights to confirm with gallery." } })} style={{ justifyContent: "center" }}>
Enquire about works →
onRoute({ name: "press" })}>
Press release · PDF
);
}
Object.assign(window, { HomePage, ExhibitionsPage, ExhibitionDetailPage, ExhibitionCard });