/* global React */ const NS = window.AlessandroMerliPortfolioDesignSystem_251cec; const { Input, Textarea, Button, MonoLabel, Card } = NS; const { useState } = React; function ContactScreen({ go }) { const { Section } = window.AMLayout; const D = window.AM_DATA; const [form, setForm] = useState({ name: '', email: '', message: '' }); const [errors, setErrors] = useState({}); const [sent, setSent] = useState(false); const set = (k) => (e) => setForm((f) => ({ ...f, [k]: e.target.value })); const submit = (e) => { e.preventDefault(); const er = {}; if (!form.name.trim()) er.name = 'Please add your name'; if (!/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(form.email)) er.email = 'Enter a valid email'; if (!form.message.trim()) er.message = 'A few words help'; setErrors(er); if (Object.keys(er).length === 0) setSent(true); }; return (
Hiring teams, R&D leads, and design studios in hardware, sporting goods, and mobility — I’d love to hear what you’re building. I usually reply within a day.
Your message is on its way to my inbox. I’ll get back to you shortly.