// contact.jsx — form, Calendly card, social links const { useState: useStateC, useEffect: useEffectC } = React; function Contact({ setRoute }) { const [form, setForm] = useStateC({ name: "", email: "", subject: "Project enquiry", message: "" }); const [status, setStatus] = useStateC("idle"); // idle | sending | sent const mobile = useMobile(); const submit = async (e) => { e.preventDefault(); if (!form.email.includes("@") || form.message.length < 10) return; setStatus("sending"); try { const res = await fetch("https://formspree.io/f/xrejpezr", { method: "POST", headers: { "Content-Type": "application/json", "Accept": "application/json" }, body: JSON.stringify(form), }); setStatus(res.ok ? "sent" : "idle"); } catch { setStatus("idle"); } }; return (
— Get in touch

Say{" "} hello.
Or just lurk.

The fastest way to start a project is the order form. But if you've got a custom brief, want to chat first, or just want to say hi — drop me a note.

{/* ─── left rail ─── */}
{/* ─── right: form ─── */}
— Message form
Drop me a line.
setForm(f => ({ ...f, name: e.target.value }))} placeholder="Alex Doe" style={inputStyleC} /> setForm(f => ({ ...f, email: e.target.value }))} placeholder="you@studio.com" style={inputStyleC} />