/* global React, ReactDOM, Wordmark, Navbar, Hero, Ethos, CollectionsSection, Atelier, Maison, Occasions, AppointmentBand, Showrooms, Footer, QuickView, TweaksPanel, useTweaks, TweakSection, TweakRadio, TweakColor, TweakSelect */ const { useState, useEffect } = React; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "hero_variant": "noir", "accent": "#b8954e", "hero_image": "media/sway-bracelet-wing.webp" }/*EDITMODE-END*/; // ──────────────────────────────────────────────────────────── // Appointment Modal — multi-step flow // ──────────────────────────────────────────────────────────── function AppointmentModal({ open, onClose }) { const [step, setStep] = useState(0); const [data, setData] = useState({ showroom: "Dubai", date: "", time: "", interest: "", name: "", email: "", phone: "", message: "", whatsapp: true, }); const set = (k, v) => setData((d) => ({ ...d, [k]: v })); useEffect(() => { if (open) { setStep(0); } }, [open]); useEffect(() => { const onKey = (e) => { if (e.key === "Escape") onClose(); }; document.addEventListener("keydown", onKey); return () => document.removeEventListener("keydown", onKey); }, [onClose]); const steps = ["Showroom", "When", "Interest", "Contact"]; const next = () => setStep((s) => Math.min(s + 1, steps.length)); const back = () => setStep((s) => Math.max(s - 1, 0)); return (