'use client' import React, {useState} from 'react' import {motion} from 'framer-motion' import {Button} from '@/components/ui/button' const ContactFormSection = () => { const [form, setForm] = useState({ name: '', email: '', company: '', phone: '', website: '', message: '', }) const [submitted, setSubmitted] = useState(false) const [loading, setLoading] = useState(false) const [error, setError] = useState('') const handleChange = ( e: React.ChangeEvent ) => { setForm({...form, [e.target.name]: e.target.value}) } const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setLoading(true) setError('') const res = await fetch('/api/contact', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(form), }) if (res.ok) { setSubmitted(true) setForm({ name: '', email: '', company: '', phone: '', website: '', message: '', }) } else { const resJson = await res.json() setError( resJson?.error || 'Ein Fehler ist aufgetreten. Bitte versuche es später erneut.' ) } setLoading(false) } return (
Schreib uns eine Nachricht Wir freuen uns über dein Interesse und melden uns schnellstmöglich bei dir zurück. {submitted ? (
✅ Deine Nachricht wurde erfolgreich gesendet!
) : (
{[ { label: 'Dein Name *', name: 'name', type: 'text', required: true, placeholder: 'Max Mustermann', }, { label: 'Deine E-Mail *', name: 'email', type: 'email', required: true, placeholder: 'max@example.com', }, { label: 'Firmenname (optional)', name: 'company', type: 'text', required: false, placeholder: 'Mustermann GmbH', }, { label: 'Telefonnummer (optional)', name: 'phone', type: 'tel', required: false, placeholder: '+49 123 456789', }, { label: 'Webseite (optional)', name: 'website', type: 'url', required: false, placeholder: 'https://...', }, ].map((field, index) => ( ))}