// Zen Interiors โ€” Projects index + Sectors pages function ProjectsPage({ navigate, filterSector }) { const all = window.ZEN_PROJECTS; const [sector, setSector] = useState(filterSector || 'All'); const [layout, setLayout] = useState('grid'); // grid | index const sectors = ['All', 'Penthouse', 'Apartment', 'Villa']; useEffect(() => { setSector(filterSector || 'All'); }, [filterSector]); const visible = useMemo(() => sector === 'All' ? all : all.filter(p => p.sector === sector), [all, sector]); return (
{/* Header */}
Index ยท Projects

Calm rooms,
seen in full.

Penthouses, apartments and villas โ€” across Dubai and beyond. Each project begins with a long brief and ends with the keys in your hand.

{/* Filter bar */}
Filter {sectors.map(s => ( ))}
View
{/* Content */}
{layout === 'grid' ? (
{visible.map(p => )}
) : ( )}
); } function ProjectsIndex({ projects, navigate }) { const [hoverSrc, setHoverSrc] = useState(null); const [pos, setPos] = useState({ x: 0, y: 0 }); return (
setPos({ x: e.clientX, y: e.clientY })}>
{projects.map((p, i) => ( { e.preventDefault(); navigate(`/projects/${p.slug}`); }} onMouseEnter={() => setHoverSrc(p.cover)} onMouseLeave={() => setHoverSrc(null)} style={{ display: 'grid', gridTemplateColumns: '60px 2fr 1.2fr 1.2fr 60px', gap: 24, alignItems: 'baseline', padding: '36px 0', borderBottom: '1px solid var(--line)', transition: 'padding 220ms ease, background 220ms ease', cursor: 'pointer', }}>
{String(i + 1).padStart(2, '0')}
{p.name}
{p.sector}
{p.location}
))}
{hoverSrc && (
)}
); } // SECTORS PAGE ------------------------------------------------------------- function SectorsPage({ navigate, slug }) { const all = window.ZEN_PROJECTS; const sectorMap = { penthouses: { name: 'Penthouses', filter: 'Penthouse', kicker: 'Top-floor residences. Skyline-facing plans, long horizons, evening-led lighting.', hero: 'media/project-volante-penthouse-01.webp' }, apartments: { name: 'Apartments', filter: 'Apartment', kicker: 'Full-floor and half-floor city homes. Calm envelopes built around the view.', hero: 'media/project-tiara-aquamarine-residence.webp' }, villas: { name: 'Villas', filter: 'Villa', kicker: 'Family homes โ€” garden, beach or course-facing. Indoor-outdoor living, soft envelopes.', hero: 'media/project-wildflower-villa-01.webp' }, }; if (slug && sectorMap[slug]) { const s = sectorMap[slug]; const projects = all.filter(p => p.sector === s.filter); return (
Sector

{s.name}.

{s.kicker}

{projects.map(p => )}
); } // Sectors index return (
Sectors

What we design for.

We work in three residential typologies. The plans differ; the studio's discipline doesn't.

{['penthouses','apartments','villas'].map(key => { const s = sectorMap[key]; const count = all.filter(p => p.sector === s.filter).length; return ( { e.preventDefault(); navigate(`/sectors/${key}`); }} style={{ cursor: 'pointer' }}>
{s.name}
{count} projects

{s.name}

{s.kicker}

); })}
); } window.ProjectsPage = ProjectsPage; window.SectorsPage = SectorsPage;