"use client"; import { useState } from "react"; const contactItems = [ { icon: ( ), label: "Telefon", value: "+49 171 9345193", href: "tel:+4917193451093", }, { icon: ( ), label: "E-Mail", value: "kontakt@mbo-tech-it.de", href: "mailto:kontakt@mbo-tech-it.de", }, ]; type Status = "idle" | "loading" | "success" | "error"; export default function Contact() { const [name, setName] = useState(""); const [email, setEmail] = useState(""); const [betreff, setBetreff] = useState(""); const [nachricht, setNachricht] = useState(""); const [status, setStatus] = useState("idle"); const [errorMsg, setErrorMsg] = useState(""); async function handleSubmit(e: React.FormEvent) { e.preventDefault(); setStatus("loading"); setErrorMsg(""); try { const res = await fetch("/api/contact", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ name, email, betreff, nachricht }), }); const data = await res.json(); if (!res.ok || !data.ok) { setErrorMsg(data.error ?? "Unbekannter Fehler"); setStatus("error"); } else { setStatus("success"); } } catch { setErrorMsg("Netzwerkfehler – bitte versuchen Sie es erneut."); setStatus("error"); } } return (
{/* Header */}
Kontakt

Projekt anfragen

Sie haben ein IT-Projekt oder eine Frage? Schreiben Sie uns — wir melden uns schnellstmöglich bei Ihnen.

{status === "success" ? (

Anfrage gesendet!

Wir haben Ihre Nachricht erhalten und melden uns schnellstmöglich bei Ihnen.

) : (
setName(e.target.value)} placeholder="Max Mustermann" className="w-full px-4 py-3 rounded-xl bg-slate-50 dark:bg-[#111925] border border-slate-300 dark:border-gray-700 text-slate-900 dark:text-white placeholder-slate-400 dark:placeholder-slate-600 focus:outline-none focus:border-orange-500/60 focus:ring-1 focus:ring-orange-500/20 transition-colors" />
setEmail(e.target.value)} placeholder="max@beispiel.de" className="w-full px-4 py-3 rounded-xl bg-slate-50 dark:bg-[#111925] border border-slate-300 dark:border-gray-700 text-slate-900 dark:text-white placeholder-slate-400 dark:placeholder-slate-600 focus:outline-none focus:border-orange-500/60 focus:ring-1 focus:ring-orange-500/20 transition-colors" />