/* ============================================================ STREAM WITH LIEN — Contact & Webshop ============================================================ */ /* ---------------- CONTACT ---------------- */ function ContactPage({ d, ui, social }) { const ref = useReveal(); const [form, setForm] = useState({ name: "", email: "", subject: d.subjects[0], message: "" }); const [sent, setSent] = useState(false); const [err, setErr] = useState({}); const set = (k) => (e) => setForm(f => ({ ...f, [k]: e.target.value })); const submit = (e) => { e.preventDefault(); const next = {}; if (!form.name.trim()) next.name = true; if (!/^\S+@\S+\.\S+$/.test(form.email)) next.email = true; if (!form.message.trim()) next.message = true; setErr(next); if (Object.keys(next).length === 0) setSent(true); }; return ( <>
{sent ? (

{d.sent}

{ setSent(false); setForm({ name: "", email: "", subject: d.subjects[0], message: "" }); }}>↺
) : (

{d.formH}