/* global React, HOUSE */
// ============== CHROME: Nav, Footer, Silk placeholder, Marquee, Page header ==============
const { useState, useEffect, useRef } = React;
const ROUTES = [
{ id: "home", label: "Maison" },
{ id: "haute-couture",label: "Haute Couture" },
{ id: "bridal", label: "Bridal" },
{ id: "ready-to-wear",label: "Ready-to-Wear" },
{ id: "jewellery", label: "Jewellery" },
{ id: "fragrance", label: "Fragrance" },
{ id: "archive", label: "Archive" },
{ id: "founders", label: "Founders" },
];
function Nav({ route, setRoute }) {
const [open, setOpen] = useState(false);
const go = (r) => { setRoute(r); setOpen(false); };
return (
Atelier · Dubai Design District
By private appointment — Monday to Saturday
WhatsApp · {HOUSE.appointmentMobile}
setRoute('home')}>Maison
setRoute('haute-couture')}>Haute Couture
setRoute('bridal')}>Bridal
setRoute('ready-to-wear')}>Ready-to-Wear
setRoute('home')} role="button">
MICHAEL CINCO
Couture House · Dubai
setRoute('jewellery')}>Jewellery
setRoute('fragrance')}>Fragrance
setRoute('archive')}>Archive
setRoute('founders')}>Founders
setOpen(true)}>Menu ≡
setRoute('appointments')}>
Request Appointment →
{open && (
MICHAEL CINCOCouture House · Dubai
setOpen(false)} style={{ display: 'inline-flex' }}>Close ✕
{ROUTES.map(r => (
go(r.id)}>
{r.label} {String(ROUTES.indexOf(r) + 1).padStart(2,'0')}
))}
go('appointments')}>Appointments 09
go('contact')}>Contact 10
Building 4, Dubai Design District
{HOUSE.appointmentMobile}
{HOUSE.email}
)}
);
}
function Footer({ setRoute }) {
return (
Michael Cinco
Atelier & Maison · Dubai Design District
A Filipino couture house in Dubai. Made-to-measure haute couture, bridal,
ready-to-wear, jewellery and fragrance — under one private appointment.
{['jewellery','fragrance','archive','founders'].map(r => (
{ e.preventDefault(); setRoute(r); }} style={{borderColor:'rgba(244,238,227,0.18)'}}>{ROUTES.find(x=>x.id===r).label}
))}
{ e.preventDefault(); setRoute('appointments'); }} style={{borderColor:'rgba(244,238,227,0.18)'}}>Appointments
{ e.preventDefault(); setRoute('contact'); }} style={{borderColor:'rgba(244,238,227,0.18)'}}>Contact
);
}
function FooterCol({ title, children }) {
return (
);
}
// Striped silk placeholder — used in place of imagery we don't have/should not invent
function Silk({ label, aspect = "3/4", style = {} }) {
return (
);
}
// Section header with eyebrow + display + side note
function SectionHeader({ eyebrow, title, note, align = 'kicker' }) {
if (align === 'kicker') {
return (
);
}
return (
{eyebrow}
{title}
{note &&
{note}
}
);
}
// Page hero — a generic title bar used by every interior page
function PageHero({ eyebrow, title, sub, imageSrc, imageAlt }) {
return (
{eyebrow}
{title}
{sub && {sub}
}
{imageSrc && (
)}
);
}
// Currency formatter
function aed(n) {
return new Intl.NumberFormat('en-AE', { maximumFractionDigits: 0 }).format(n);
}
Object.assign(window, { Nav, Footer, FooterCol, Silk, SectionHeader, PageHero, aed, ROUTES });