// CalGrillz β€” Contact page (also handles event booking via #book anchor) function CGWContactPage() { const [topic, setTopic] = useState('general'); // 'general' | 'order' | 'event' | 'press' const [form, setForm] = useState({ name: '', phone: '', email: '', message: '' }); const [event, setEvent] = useState({ occasion: '', date: '', headcount: 20, style: 'pickup', // pickup | delivery | onsite budget: '', venue: '', notes: '', }); const [submitted, setSubmitted] = useState(false); // Auto-jump to event if URL hash is #book useEffect(() => { if (typeof window !== 'undefined' && window.location.hash === '#book') { setTopic('event'); const el = document.getElementById('book'); if (el) setTimeout(() => el.scrollIntoView({ behavior: 'instant' }), 100); } }, []); const handleSubmit = (e) => { e.preventDefault(); setSubmitted(true); window.scrollTo({ top: 0, behavior: 'smooth' }); }; if (submitted) { return ( setSubmitted(false)}/> ); } return ( us.'))} sub={cgC('contact.hero.sub', 'Order question, event booking, press, or just to say hi β€” we read every message.')} breadcrumbs={[{ label: 'Home', href: CG_URL('home', 'index.html') }, { label: 'Contact' }]} image={cgC('contact.hero.image', 'hands-platter-2.jpg')} /> {/* Quick contact strip */}
} label="WhatsApp" value="Chat now" sub="Average reply: 6 min" href={'https://wa.me/' + cgC('contact.whatsapp', '2347085701097')} highlight/>
{/* LEFT: info */} {/* RIGHT: form */}
Send us a message

What's it about?

{/* Topic switcher */}
{[ { id: 'general', label: 'General', icon: 'πŸ’¬' }, { id: 'order', label: 'Order issue', icon: 'πŸ›’' }, { id: 'event', label: 'Event booking', icon: 'πŸŽ‰' }, { id: 'press', label: 'Press', icon: 'πŸ“°' }, ].map(t => ( ))}
setForm({...form, name: v})} required/> setForm({...form, phone: v})} placeholder="+234..." mono required/>
setForm({...form, email: v})} type="email" required/> {/* event-specific fields */} {topic === 'event' && ( <>
Book CalGrillz for your event. Birthdays, weddings, corporate dinners, get-togethers. Pickup, delivery to your venue, or we cook on-site.
setEvent({...event, occasion: v})} placeholder="e.g. wedding reception" required/> setEvent({...event, date: v})} type="date" required/>
setEvent({...event, headcount: parseInt(v) || 0})} type="number" required/> setEvent({...event, budget: v})} placeholder="e.g. 300,000" mono/>
How do you want it served?
{[ { id: 'pickup', label: 'Pickup', sub: 'You collect at the pit', icon: 'πŸƒ' }, { id: 'delivery', label: 'Delivery', sub: 'Hot to your venue', icon: 'πŸ›΅' }, { id: 'onsite', label: 'On-site grill', sub: 'We bring the fire', icon: 'πŸ”₯' }, ].map(s => ( ))}
{event.style !== 'pickup' && ( setEvent({...event, venue: v})} required/> )} )} setForm({...form, message: v})} textarea required={topic !== 'event'} placeholder={ topic === 'event' ? 'Allergies, dietary needs, dish preferences, music…' : topic === 'order' ? 'e.g. CG-2401-A8K3 was missing the plantain' : 'Tell us more.' } />
{topic === 'event' ? <>We'll get back within 2 hours with a quote and availability. : <>Average reply time: under 24 hours. }
{/* Map band */}
The location

Easier to find than the
WhatsApp link suggests.