"use client"; import { useState } from "react"; type Status = "idle" | "loading" | "success" | "error"; export default function FlyerDownloadForm() { const [email, setEmail] = useState(""); const [dsgvo, setDsgvo] = useState(false); const [status, setStatus] = useState("idle"); const [errorMsg, setErrorMsg] = useState(""); const [downloadUrl, setDownloadUrl] = useState(""); async function handleSubmit(e: React.FormEvent) { e.preventDefault(); setStatus("loading"); setErrorMsg(""); try { const res = await fetch("/api/familyguard-flyer", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ email, dsgvoEinwilligung: dsgvo }), }); const data = await res.json(); if (!res.ok || !data.ok) { setErrorMsg(data.error ?? "Unbekannter Fehler"); setStatus("error"); } else { setDownloadUrl(data.downloadUrl); setStatus("success"); } } catch { setErrorMsg("Netzwerkfehler – bitte versuchen Sie es erneut."); setStatus("error"); } } return (
Flyer

FamilyGuard-Flyer herunterladen

Alle Infos zu MBO FamilyGuard kompakt als PDF – tragen Sie Ihre E-Mail-Adresse ein und laden Sie den Flyer direkt herunter.

{status === "success" ? (

Fertig! Der Flyer wurde Ihnen außerdem per E-Mail zugeschickt.

Flyer jetzt herunterladen
) : (
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" /> {status === "error" && (
{errorMsg || "Anfrage fehlgeschlagen. Bitte versuchen Sie es erneut."}
)}
)}
); }