"use client"; import React, { useState } from "react"; import Image from "next/image"; import Link from "next/link"; import { Mail, MapPin, CheckCircle } from "lucide-react"; import { Button } from "./Button"; import { Counter } from "./Counter"; import { Reveal } from "./Reveal"; import { TechBackground } from "./TechBackground"; import { StatusModal } from "./StatusModal"; import { useTranslations } from "next-intl"; export default function Contact() { const t = useTranslations("Contact"); const [submitted, setSubmitted] = useState(false); const [loading, setLoading] = useState(false); const [statusModal, setStatusModal] = useState({ isOpen: false, type: "success" as "success" | "error", title: "", message: "", buttonText: "", }); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); const formData = new FormData(e.currentTarget); const data = Object.fromEntries(formData.entries()); try { const response = await fetch("/api/contact", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(data), }); if (response.ok) { setSubmitted(true); setStatusModal({ isOpen: true, type: "success", title: t("form.successTitle"), message: t("form.successMessage"), buttonText: t("form.close") || "Schließen", }); } else { const err = await response.json(); const errorMsg = t.has(`form.${err.error}`) ? t(`form.${err.error}`) : err.error || t("form.errorMessage"); setStatusModal({ isOpen: true, type: "error", title: t("form.errorTitle"), message: errorMsg, buttonText: t("form.tryAgain") || "Erneut versuchen", }); } } catch { setStatusModal({ isOpen: true, type: "error", title: t("form.errorTitle"), message: t("form.errorMessage"), buttonText: t("form.tryAgain") || "Erneut versuchen", }); } finally { setLoading(false); } }; return (
{/* Hero Section */}
Contact MB Grid Solutions
01
{t("hero.tagline")}

{t.rich("hero.title", { accent: (chunks) => ( {chunks} ), })}

{t("hero.subtitle")}

{t("info.address")}

{t("info.company")}
Raiffeisenstraße 22
73630 Remshalden

{submitted ? (

{t("form.successTitle")}

{t("form.successMessage")}

) : (

{t.rich("form.privacyNote", { link: (chunks) => ( {chunks} ), })}

)}
setStatusModal({ ...statusModal, isOpen: false })} type={statusModal.type} title={statusModal.title} message={statusModal.message} buttonText={statusModal.buttonText} />
); }