/* TDD — Contact page + App root */ const { useState: uS, useEffect: uE, useRef: uR } = React; /* ---------------- CONTACT ---------------- */ function ContactPage({ audience, setAudience, preferredTab }) { useReveal(); const d = window.TDD_DATA; const [tab, setTab] = uS(preferredTab || "visit"); const [submitted, setSubmitted] = uS(false); const [form, setForm] = uS({ name: "", email: "", phone: "", company: "", role: "", date: "", projectType: "Residential", brands: "", message: "", samples: "", }); uE(() => { if (preferredTab) setTab(preferredTab); }, [preferredTab]); function up(k) { return e => setForm(f => ({ ...f, [k]: e.target.value })); } function submit(e) { e.preventDefault(); setSubmitted(true); window.scrollTo({ top: 0, behavior: "smooth" }); } function reset() { setSubmitted(false); setForm(f => ({ ...f, message: "", brands: "", samples: "" })); } const tabs = [ { key: "visit", label: "Book a Studio Visit" }, { key: "samples", label: "Request Samples" }, { key: "trade", label: audience === "trade" ? "Project Enquiry" : "Project Enquiry" }, { key: "brochure", label: "Brochure" }, ]; const labelByTab = { visit: "Booked.", samples: "Samples requested.", trade: "Enquiry received.", brochure: "Brochure on its way.", }; const bodyByTab = { visit: "We'll reply within one studio day to confirm a time. If you have a project brief, hit reply on our message — we'll have the relevant racks pulled before you arrive.", samples: "Cuts are dispatched within 48 hours where stock allows; larger lengths follow. We'll send a tracking note once your samples leave the studio.", trade: "A senior member of the studio will respond within one business day. For procurement teams: please reply with the project schedule and we'll route accordingly.", brochure: "The current TDD library brochure is on its way to your inbox. Per-brand brochures available on the brand pages or by request.", }; return (
Contact · Dubai d3 · Sharjah · Doha

Speak to the studio.

Choose what you need. We route trade and private enquiries through the same studio team — the form only changes what we have ready when you arrive or write back.

{!submitted ? ( <>
{tabs.map(t => ( ))}
{audience === "trade" && (
)} {audience === "private" && (
)}
{tab === "visit" && ( <>
)} {tab === "samples" && ( <>
)} {tab === "trade" && ( <>
)} {tab === "brochure" && (
)}
Routes to the studio inbox · response within one business day
) : (
✓ Sent

{labelByTab[tab]}

{bodyByTab[tab]}

Ref · TDD-{Math.floor(Math.random() * 90000 + 10000)} · {new Date().toLocaleDateString("en-GB", { day: "2-digit", month: "short", year: "numeric" })}
)}
{/* RIGHT — contact details + map */}
Studio — Dubai d3
TDD Furnishing Trading LLC
Office 105B, Block B, 1st Floor, Building 7
Dubai Design District, Za'abeel 2
P.O. Box 33975, Dubai, UAE
Sun – Thu · 09:30 – 18:00
Sharjah — SAIF Zone
The Design Destination FZE
SAIF Zone, Sharjah Airport Free Zone
+971 6 533 1667
Doha — Qatar
TDD Furnishing Trading WLL
Doha, Qatar
+974 4 435 7339 · office@tddqatar.com
Office 105B · d3
25.188642 N · 55.29775 E
); } Object.assign(window, { ContactPage });