// Contact form — sends to stemirko@gmail.com (mailto fallback in prototype). const Contact = ({ t, lang }) => { const [arrival, setArrival] = React.useState(""); const [departure, setDeparture] = React.useState(""); const [guests, setGuests] = React.useState("2"); const [name, setName] = React.useState(""); const [email, setEmail] = React.useState(""); const [note, setNote] = React.useState(""); const [errors, setErrors] = React.useState({}); const [sent, setSent] = React.useState(false); const [sending, setSending] = React.useState(false); const [sendError, setSendError] = React.useState(false); const validate = () => { const e = {}; if (!arrival) e.arrival = t.form.error_required; if (!departure) e.departure = t.form.error_required; if (!name) e.name = t.form.error_required; if (!email) e.email = t.form.error_required;else if (!/^[^@\s]+@[^@\s]+\.[^@\s]+$/.test(email)) e.email = t.form.error_email; setErrors(e); return Object.keys(e).length === 0; }; const onSubmit = (ev) => { ev.preventDefault(); if (!validate()) return; setSending(true); setSendError(false); fetch("https://formspree.io/f/xzdogqdw", { method: "POST", headers: { "Content-Type": "application/json", "Accept": "application/json" }, body: JSON.stringify({ _subject: "Neue Anfrage — Wohnung Prags", Anreise: arrival, Abreise: departure, "Anzahl Gäste": guests, Name: name, "E-Mail": email, Nachricht: note || "–", _language: lang }) }) .then((res) => { setSending(false); if (res.ok) { setSent(true); } else { setSendError(true); } }) .catch(() => { setSending(false); setSendError(true); }); }; const labelStyle = { fontFamily: "var(--font-sans)", fontSize: 10.5, letterSpacing: "0.22em", textTransform: "uppercase", color: "rgba(245,241,234,0.55)", display: "block", marginBottom: 10 }; const fieldStyle = (err) => ({ fontFamily: "var(--font-serif)", fontStyle: "italic", fontSize: 19, color: "var(--bone)", padding: "10px 0 14px", border: "none", borderBottom: `1px solid ${err ? "var(--gold)" : "rgba(245,241,234,0.22)"}`, background: "transparent", outline: "none", width: "100%", transition: "border-color 280ms" }); const errStyle = { marginTop: 6, fontFamily: "var(--font-sans)", fontSize: 11, letterSpacing: "0.18em", textTransform: "uppercase", color: "var(--gold)" }; return (
· {t.contact_eyebrow} ·

{t.contact_lead}

{sent ?
{t.form.sent}
Mirko · stemirko@gmail.com
:
setArrival(e.target.value)} style={fieldStyle(errors.arrival)} /> {errors.arrival &&
{errors.arrival}
}
setDeparture(e.target.value)} style={fieldStyle(errors.departure)} /> {errors.departure &&
{errors.departure}
}
setName(e.target.value)} style={fieldStyle(errors.name)} /> {errors.name &&
{errors.name}
}
setEmail(e.target.value)} style={fieldStyle(errors.email)} /> {errors.email &&
{errors.email}
}