"use client"; import { useState } from "react"; import { Button } from "./Button"; interface FormState { name: string; email: string; phone: string; message: string; } interface FormErrors { name?: string; email?: string; message?: string; } export function ContactForm() { const [form, setForm] = useState({ name: "", email: "", phone: "", message: "", }); const [errors, setErrors] = useState({}); const [submitted, setSubmitted] = useState(false); function validate(): FormErrors { const newErrors: FormErrors = {}; if (!form.name.trim()) newErrors.name = "Bitte geben Sie Ihren Namen ein."; if (!form.email.trim()) { newErrors.email = "Bitte geben Sie Ihre E-Mail-Adresse ein."; } else if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(form.email)) { newErrors.email = "Bitte geben Sie eine gültige E-Mail-Adresse ein."; } if (!form.message.trim()) newErrors.message = "Bitte geben Sie eine Nachricht ein."; return newErrors; } function handleSubmit(e: React.FormEvent) { e.preventDefault(); const newErrors = validate(); setErrors(newErrors); if (Object.keys(newErrors).length === 0) { setSubmitted(true); } } function handleChange( e: React.ChangeEvent ) { const { name, value } = e.target; setForm((prev) => ({ ...prev, [name]: value })); if (errors[name as keyof FormErrors]) { setErrors((prev) => ({ ...prev, [name]: undefined })); } } if (submitted) { return (

Vielen Dank für Ihre Nachricht!

Wir werden uns so schnell wie möglich bei Ihnen melden.

); } return (
{errors.name && ( )}
{errors.email && ( )}