"use client"; import Link from "next/link"; import { useActionState, useEffect, useId } from "react"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { requestResetAction, finishResetAction, changePasswordAction, type PasswordActionState, } from "./actions"; export function PasswordForm({ mode, token, }: { mode: "request" | "reset" | "change"; token?: string; }) { const action = mode === "request" ? requestResetAction : mode === "reset" ? finishResetAction : changePasswordAction; const [state, formAction, pending] = useActionState( action, {} as PasswordActionState, ); const id = useId(); useEffect(() => { if (mode === "change" && state.success) window.location.replace( new URL("/login?passwordChanged=1", window.location.origin).href, ); }, [mode, state.success]); if (state.success) return (
{state.message}
{mode !== "request" ? ( Zur Anmeldung ) : null}