/* Royal Yachts — yacht drawer + enquire modal + sales/legacy/footer */ const { useState: useStateD, useEffect: useEffectD, useMemo } = React; /* ---------- Yacht drawer ---------- */ function YachtDrawer({ yacht, open, onClose, onEnquire, faved, onFave }) { useEffectD(() => { const onKey = (e) => { if (e.key === "Escape") onClose(); }; if (open) window.addEventListener("keydown", onKey); return () => window.removeEventListener("keydown", onKey); }, [open, onClose]); if (!yacht) return null; return (
); } /* ---------- Enquire modal ---------- */ function EnquireModal({ open, payload, onClose, onSubmit }) { const [form, setForm] = useStateD({ name: "", phone: "", date: "", guests: "", message: "", }); const [stage, setStage] = useStateD("form"); // form | success const yacht = payload?.yachtId ? FLEET.find((y) => y.id === payload.yachtId) : null; const intent = payload?.intent || "general"; useEffectD(() => { if (open) { setStage("form"); setForm({ name: "", phone: "", date: "", guests: "", message: yacht ? `I'd like to charter the ${yacht.name}.` : "" }); } }, [open, payload]); useEffectD(() => { const onKey = (e) => { if (e.key === "Escape") onClose(); }; if (open) window.addEventListener("keydown", onKey); return () => window.removeEventListener("keydown", onKey); }, [open, onClose]); const submit = (e) => { e.preventDefault(); setStage("success"); onSubmit && onSubmit(form, payload); }; const waLink = useMemo(() => { const text = "Hi Royal Yachts — I'd like to enquire" + (yacht ? ` about the ${yacht.name}` : "") + (form.date ? `, on ${form.date}` : "") + (form.guests ? `, ${form.guests} guests` : "") + "."; return `https://wa.me/971502266906?text=${encodeURIComponent(text)}`; }, [form, yacht]); const titleByIntent = { charter: "Reserve your day on the water", experience: "Plan your experience", destination: "Build the route", sales: "Speak with the sales desk", general: "Tell us what you'd like", }; return (
e.stopPropagation()}>
{intent === "sales" ? "Sales · Ownership" : "Charter Enquiry"}

{stage === "form" ? titleByIntent[intent] : "We have you."}

{stage === "form" && (

{yacht ? `Quoting the ${yacht.name}. We'll route the date and crew within 24 hours.` : "We answer every enquiry within 24 hours. Office hours 09:00–17:00 GST."}

)} {stage === "success" && (

One of the team will reply within 24 hours. For an instant route, open WhatsApp below.

)}
{stage === "form" && (
setForm({...form, name: e.target.value})} placeholder="Your name" />
setForm({...form, phone: e.target.value})} placeholder="+971 ..." />
setForm({...form, date: e.target.value})} />