// Brief Us modal — category-qualified proposal flow // Wired as the primary B2B conversion across the prototype. const { useState: useStateB, useEffect: useEffectB } = React; const SERVICE_OPTIONS = [ { id: "sports", title: "Sports & Motorsports", desc: "Federations, leagues, rights holders" }, { id: "festival", title: "Festivals & Entertainment",desc: "Multi-day cultural / lifestyle" }, { id: "activation", title: "Brand Activation", desc: "Experiential, pop-ups, mall" }, { id: "conference", title: "Conferences & Summits", desc: "Stakeholder, B2B, policy" }, { id: "ceremony", title: "Ceremonies & Galas", desc: "Awards, openings, gala dinners" }, { id: "launch", title: "Product Launch", desc: "Reveals, press moments" }, ]; const MARKETS = [ { id: "uae", title: "UAE", desc: "Dubai · Abu Dhabi · Sharjah" }, { id: "ksa", title: "Saudi Arabia", desc: "Riyadh · Jeddah · AlUla · NEOM" }, { id: "qatar", title: "Qatar", desc: "Doha" }, { id: "kuwait",title: "Kuwait", desc: "" }, { id: "intl", title: "International", desc: "Inbound / outbound GCC" }, { id: "other", title: "Other / TBD", desc: "Tell us where" }, ]; const SCALES = [ { id: "intimate", title: "Intimate", desc: "< 500 guests" }, { id: "mid", title: "Mid-scale",desc: "500–5,000" }, { id: "large", title: "Large", desc: "5,000–50,000" }, { id: "mega", title: "Mega", desc: "50,000+ / multi-city" }, ]; const TIMELINES = [ { id: "rush", title: "< 3 months" }, { id: "near", title: "3–6 months" }, { id: "mid", title: "6–12 months" }, { id: "long", title: "12+ months / pitching" }, ]; const STEPS = ["Service", "Scale & Market", "About you", "Brief"]; const BriefModal = ({ open, onClose, initialCategory }) => { const [step, setStep] = useStateB(0); const [data, setData] = useStateB({ service: initialCategory || "", market: "", scale: "", timeline: "", name: "", company: "", role: "", email: "", phone: "", summary: "", attach: false, }); const [done, setDone] = useStateB(false); useEffectB(() => { if (open) { setStep(0); setDone(false); setData(d => ({ ...d, service: initialCategory || d.service || "" })); document.body.style.overflow = "hidden"; } else { document.body.style.overflow = ""; } return () => { document.body.style.overflow = ""; }; }, [open, initialCategory]); if (!open) return null; const set = (patch) => setData(d => ({ ...d, ...patch })); const canAdvance = (() => { if (step === 0) return !!data.service; if (step === 1) return !!data.market && !!data.scale; if (step === 2) return data.name && data.email && data.company; if (step === 3) return data.summary.length > 10; return false; })(); const next = () => { if (step < STEPS.length - 1) setStep(s => s + 1); else setDone(true); }; const stepLabel = STEPS[step]; return (
Pick the closest category — we'll refine in the brief.
So we route to Dubai HQ, Riyadh or Doha.
We'll keep your details to procurement-grade standards.
A few lines is plenty — we'll come back with questions.
Thanks {data.name?.split(" ")[0] || "there"}. We'll come back from the {data.market?.toUpperCase() || "regional"} office within one working day.
| Reference | BE-2026-{Math.floor(Math.random() * 9000 + 1000)} |
| Routed to | {data.market === "ksa" ? "Riyadh office" : data.market === "qatar" ? "Doha office" : "Dubai HQ"} |
| Category | {SERVICE_OPTIONS.find(s => s.id === data.service)?.title || "—"} |
| Scale | {SCALES.find(s => s.id === data.scale)?.title || "—"} |