"use client"; import {useMutation} from "@tanstack/react-query"; import {toast} from "sonner"; import {FormControl, FormField, FormItem, FormLabel, useZodForm} from "@/components/ui/form"; import {Form} from "@/components/ui/form"; import {ButtonWithLoading} from "@/components/common/button-with-loading"; import Link from "next/link"; import {ResetPasswordSchema, ResetPasswordType} from "./reset-password-form.schema"; import {PasswordStrengthInput} from "@/components/ui/password-input-indicator"; import {useRouter, useSearchParams} from "next/navigation"; import {ArrowLeft} from "lucide-react"; import {authClient} from "@/lib/auth/auth-client"; import {BetterAuthError} from "@/types/auth"; import {PasswordInput} from "@/components/ui/password-input"; export type ResetPasswordFormProps = { defaultValues?: ResetPasswordType; }; export const ResetPasswordForm = (props: ResetPasswordFormProps) => { const searchParams = useSearchParams(); const form = useZodForm({ schema: ResetPasswordSchema, }); const router = useRouter(); const mutation = useMutation({ mutationFn: async (values: ResetPasswordType) => { const {data, error} = await authClient.resetPassword({ newPassword: values.password, token: searchParams.get("token") || "", }); if (error) throw error; }, onSuccess: () => { toast.success("Password successfully reset!"); setTimeout(() => router.push("/"), 1400); }, onError: (error: BetterAuthError) => { toast.error("An error occurred while resetting password"); }, }); return (
); };