"use client"; import { useEffect, useRef, useState } from "react"; import { useI18n } from "@/i18n/i18n-provider"; interface TurnstileApi { render: (container: HTMLElement, options: Record) => string; remove: (widgetId: string) => void; } declare global { interface Window { turnstile?: TurnstileApi; } } // "render=explicit" schaltet die automatische Suche nach .cf-turnstile- // Elementen ab: dieses Widget wird ausschliesslich von Hand gerendert, damit // wir die Widget-ID kennen und es beim Verlassen wieder entfernen koennen. const SCRIPT_SRC = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit"; /** * Laedt das Turnstile-Skript je Seitenbesuch genau einmal; alle Widgets * teilen sich dieses eine Versprechen. * * Zuvor uebernahm das