import { z } from "zod/v4"; import { useForm } from "@mantine/form"; import { zod4Resolver } from "mantine-form-zod-resolver"; import useAuth from "@/features/auth/hooks/use-auth"; import { Box, Button, Container, PasswordInput, Title } from "@mantine/core"; import classes from "./auth.module.css"; import { useRedirectIfAuthenticated } from "@/features/auth/hooks/use-redirect-if-authenticated.ts"; import { useTranslation } from "react-i18next"; const formSchema = z.object({ newPassword: z .string() .min(8, { message: "Password must contain at least 8 characters" }), }); type FormValues = z.infer; interface PasswordResetFormProps { resetToken?: string; } export function PasswordResetForm({ resetToken }: PasswordResetFormProps) { const { t } = useTranslation(); const { passwordReset, isLoading } = useAuth(); useRedirectIfAuthenticated(); const form = useForm({ validate: zod4Resolver(formSchema), initialValues: { newPassword: "", }, }); async function onSubmit(data: FormValues) { await passwordReset({ token: resetToken, newPassword: data.newPassword, }); } return ( {t("Password reset")}
); }