diff --git a/src/app/konto/page.tsx b/src/app/konto/page.tsx index 2ebe390..a9ed453 100644 --- a/src/app/konto/page.tsx +++ b/src/app/konto/page.tsx @@ -47,10 +47,17 @@ export default async function KontoPage(props: PageProps<"/konto">) {

{t.account.login}

-
- {process.env.NEXT_PUBLIC_TURNSTILE_SITE_KEY ? ( - - ) : null} + {/* Das Turnstile-Widget ist ein iframe mit FESTER Breite (rund + 300 px) und kann nicht mitschrumpfen. In einer Zeile mit + Knopf und Link — noch dazu in einer der beiden Spalten + dieser Seite — reichte der Platz nie: die Elemente schoben + sich uebereinander. Deshalb steht es auf einer eigenen + Zeile, und Knopf und Link duerfen darunter umbrechen. Das + Registrierungsformular daneben macht es schon immer so. */} + {process.env.NEXT_PUBLIC_TURNSTILE_SITE_KEY ? ( + + ) : null} +
{t.account.forgotPassword} diff --git a/src/components/turnstile-widget.tsx b/src/components/turnstile-widget.tsx index d2ccd1d..e3ff055 100644 --- a/src/components/turnstile-widget.tsx +++ b/src/components/turnstile-widget.tsx @@ -166,8 +166,17 @@ export function TurnstileWidget({ siteKey, onVerify }: TurnstileWidgetProps) { }; }, [siteKey, attempt]); + // "max-w-full overflow-x-auto" ist kein Schoenheitsmittel, sondern eine + // Zusicherung: Cloudflare liefert einen iframe mit FESTER Breite (rund + // 300 px), der nicht mitschrumpft. Steht er in einem schmaleren Kasten, + // ragt er heraus und schiebt sich ueber das, was daneben liegt — auf der + // Kontoseite traf das den "Passwort vergessen"-Link. Mit diesen Klassen + // bleibt er in jedem Fall innerhalb seines Kastens; ist der zu schmal, + // laesst sich der Inhalt seitlich schieben, statt das Layout zu zerlegen. + // "w-fit" verhindert zugleich, dass der Kasten in einer Flex-Zeile mehr + // Platz beansprucht als der iframe braucht. return ( -
+
{failed ? (