diff --git a/src/app/page.tsx b/src/app/page.tsx index fdce1e9..c2368cf 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -63,7 +63,7 @@ export default async function HomePage() { - + ); } diff --git a/src/app/unternehmen/page.tsx b/src/app/unternehmen/page.tsx index 0335970..f43fab7 100644 --- a/src/app/unternehmen/page.tsx +++ b/src/app/unternehmen/page.tsx @@ -51,7 +51,7 @@ export default async function UnternehmenPage() {

{t.unternehmenPage.inquiryHeading}

- +
diff --git a/src/components/business-inquiry-form.tsx b/src/components/business-inquiry-form.tsx index d3f994a..f4e827c 100644 --- a/src/components/business-inquiry-form.tsx +++ b/src/components/business-inquiry-form.tsx @@ -7,9 +7,24 @@ import { useI18n } from "@/i18n/i18n-provider"; type Status = "idle" | "loading" | "success" | "error"; -const TURNSTILE_SITE_KEY = process.env.NEXT_PUBLIC_TURNSTILE_SITE_KEY; - -export function BusinessInquiryForm() { +/** + * Der Turnstile-Sitekey kommt als Prop vom Server und NICHT aus + * process.env in dieser Datei. + * + * Grund: NEXT_PUBLIC_-Variablen werden in Client Components zur BUILD-Zeit + * ins Bundle eingebacken. Der Wert wird hier aber erst zur Laufzeit gesetzt + * (k8s/01-configmap.yaml). Ein Zugriff auf process.env an dieser Stelle + * ergibt deshalb dauerhaft undefined — das Widget erschiene nie, waehrend die + * Serverseite bei gesetztem TURNSTILE_SECRET_KEY sehr wohl einen Token + * verlangt. Das Formular waere damit unabsendbar, ohne dass irgendwo ein + * Fehler auftaucht. + * + * Alle uebrigen Formulare (Login, Registrierung, Passwort-Reset, Zwei-Faktor, + * Checkout, Verfuegbarkeits-Benachrichtigung) lesen den Wert bereits im + * Server Component und reichen ihn als Prop weiter. Diese Datei folgt jetzt + * demselben Muster. + */ +export function BusinessInquiryForm({ turnstileSiteKey }: { turnstileSiteKey?: string }) { const { t } = useI18n(); const [status, setStatus] = useState("idle"); const [errorMessage, setErrorMessage] = useState(null); @@ -96,8 +111,8 @@ export function BusinessInquiryForm() { {errorMessage ?

{errorMessage}

: null} - {TURNSTILE_SITE_KEY ? ( - + {turnstileSiteKey ? ( + ) : null} - {TURNSTILE_SITE_KEY ? ( + {turnstileSiteKey ? (
- +
) : null}