53 lines
1.6 KiB
TypeScript
53 lines
1.6 KiB
TypeScript
import Link from "next/link";
|
|
import {
|
|
Card,
|
|
CardContent,
|
|
CardDescription,
|
|
CardHeader,
|
|
CardTitle,
|
|
} from "@/components/ui/card";
|
|
import { isPasswordResetValid } from "@/lib/password-management";
|
|
import { PasswordForm } from "../../passwort-vergessen/password-form";
|
|
export const metadata = {
|
|
title: "Neues Passwort · Kita-Planer",
|
|
robots: { index: false, follow: false },
|
|
};
|
|
export default async function ResetPasswordPage({
|
|
params,
|
|
}: {
|
|
params: Promise<{ token: string }>;
|
|
}) {
|
|
const { token } = await params;
|
|
const valid = await isPasswordResetValid(token);
|
|
return (
|
|
<div className="flex min-h-screen items-center justify-center bg-[var(--bg)] px-5 py-12">
|
|
<Card className="w-full max-w-md">
|
|
<CardHeader>
|
|
<CardTitle>
|
|
{valid
|
|
? "Neues Passwort festlegen"
|
|
: "Dieser Link ist nicht mehr gültig"}
|
|
</CardTitle>
|
|
<CardDescription>
|
|
{valid
|
|
? "Wähle ein neues Passwort für dein Kita-Planer-Konto."
|
|
: "Der Link ist abgelaufen, wurde bereits verwendet oder ist ungültig. Du kannst einen neuen Link anfordern."}
|
|
</CardDescription>
|
|
</CardHeader>
|
|
<CardContent>
|
|
{valid ? (
|
|
<PasswordForm mode="reset" token={token} />
|
|
) : (
|
|
<Link
|
|
href="/passwort-vergessen"
|
|
className="text-sm font-semibold text-[var(--accent-deep)] underline underline-offset-4"
|
|
>
|
|
Neuen Link anfordern
|
|
</Link>
|
|
)}
|
|
</CardContent>
|
|
</Card>
|
|
</div>
|
|
);
|
|
}
|