// ============================================================ // Contact page + inquiry form - FreshWave Digital Studio // ============================================================ function InquiryForm() { const [form, setForm] = useState({ name: '', email: '', project: '', type: '', budget: '', message: '' }); const [sending, setSending] = useState(false); const [sent, setSent] = useState(false); const [fallbackMailto, setFallbackMailto] = useState(''); const [ticket, setTicket] = useState(''); const set = (k, v) => setForm((f) => ({ ...f, [k]: v })); const submit = async (e) => { e.preventDefault(); if (!form.name || !form.email || !form.message) return; setSending(true); setFallbackMailto(''); setTicket(''); const payload = { kind: 'contact', name: form.name, email: form.email, project: form.project, category: form.type, budget: form.budget, message: form.message, }; try { const result = await submitInquiry(payload); setTicket(result.ticket || ''); setSent(true); } catch (error) { const mailto = buildInquiryMailto(payload); setFallbackMailto(mailto); window.location.href = mailto; setSent(true); } finally { setSending(false); } }; if (sent) { return (

Message received

We'll get back to you within 72 hours. Often sooner when the queue is light.

{ticket &&

Ticket {ticket}

} {fallbackMailto && (
The server form was unavailable, so we opened a backup email draft with your details. If it did not open, use the button below. Open email draft
)}
); } const TYPES = ['Anime Figure', 'Vintage / Replica', 'Fidget Toy', 'Statue', 'Not sure']; const BUDGETS = ['Under $50', '$50-$100', '$100-$200', '$200+ (statues)']; return (
set('name', e.target.value)} required placeholder="Maya Chen" className="fw-input" /> set('email', e.target.value)} required placeholder="maya@example.com" className="fw-input" />
set('project', e.target.value)} placeholder="Glowing trophy, replacement gear, …" className="fw-input" />
{TYPES.map((t) => ( ))}
{BUDGETS.map((b) => ( ))}
); } function ContactPage() { return (
Say hello

Let's talk

Got a character to immortalize, a vintage piece to recreate, or just a half-formed idea? Drop us a line and we'll come back within 72 hours.

{[ { k: 'Email', v: (window.FRESHWAVE_CONFIG || {}).contactEmail || 'customerservice@freshwavefinds.shop', href: `mailto:${(window.FRESHWAVE_CONFIG || {}).contactEmail || 'customerservice@freshwavefinds.shop'}` }, { k: 'Studio', v: 'Bench 04, The Maker Block', href: null }, { k: 'Turnaround', v: 'Within 72h', href: null }, ].map((c) => (
{c.k}
{c.href ? ( {c.v} ) : (
{c.v}
)}
))}
); } Object.assign(window, { ContactPage, InquiryForm });