// Contact / Start-a-project — the conversion flow. function ContactPage({ initialProjectType }) { const [step, setStep] = useState(0); const [form, setForm] = useState({ projectType: initialProjectType || "", location: "", timeline: "", budget: "", scope: [], name: "", company: "", email: "", phone: "", brief: "", attachment: "", consent: false, }); const set = (k, v) => setForm(f => ({ ...f, [k]: v })); const toggleScope = (s) => setForm(f => ({ ...f, scope: f.scope.includes(s) ? f.scope.filter(x => x !== s) : [...f.scope, s], })); const steps = ["Project", "Scope", "About you", "Submit"]; const projectTypes = ["Hospitality", "Palaces & Residences", "Public Areas", "Manufacture only", "Other"]; const timelines = ["< 6 months", "6–12 months", "12–24 months", "Open"]; const budgets = ["Under $1M", "$1–5M", "$5–25M", "$25M+", "Discuss"]; const scopes = ["Design", "Manufacture", "Contracting", "FF&E", "Soft furnishings", "Architectural metalwork"]; const submitted = step === 4; return (
Start a project

Tell us what you're building.

Every enquiry reaches a senior director within two working days. Royal and private residential briefs are handled by a single named lead under NDA.

{/* Sidebar */}
STEPS
{steps.map((s, i) => (
i < step && setStep(i)}> {i < step ? "✓" : `0${i + 1}`} {s}
))}
OR CONTACT DIRECTLY
Jebel Ali Free Zone
P.O. Box 262456
Dubai, U.A.E.
{/* Form panel */}
{submitted ? (
RECEIVED

Thank you, {form.name.split(" ")[0] || "—"}.

Your brief has reached our enquiries desk. A senior director will be in touch within two working days.

REFERENCE
GLI-{Date.now().toString().slice(-6)}-{(form.projectType || "GEN").slice(0, 3).toUpperCase()}
) : step === 0 ? (
Project

What are you building?

{projectTypes.map(t => ( ))}
set("location", e.target.value)} placeholder="City, country" />
{budgets.map(b => ( set("budget", b)}>{b} ))}
) : step === 1 ? (
Scope

What do you need from us?

Select all that apply. We engage on any subset — design only, manufacture only, full turnkey.

{scopes.map(s => { const on = form.scope.includes(s); return ( ); })}