import { useState } from "react"; import { Link, useSearchParams } from "react-router-dom"; import "./page-auth.css"; import { AuthWrapper } from "./AuthWrapper"; import showToast from "../../services/toastService"; import AuthRepository from "../../repositories/AuthRepository"; import { z } from "zod"; import { useForm } from "react-hook-form"; import { zodResolver } from "@hookform/resolvers/zod"; import { useNavigate } from "react-router-dom"; import { clearAllCache } from "../../slices/apiDataManager"; const resetPasswordSchema = z .object({ email: z.string().email(), password: z .string() .min(8, "Password must be at least 8 characters") .regex(/[A-Z]/, "Password must contain at least one uppercase letter") .regex(/[a-z]/, "Password must contain at least one lowercase letter") .regex(/\d/, "Password must contain at least one number") .regex( /[!@#$%^&*()_+{}\[\]:;<>,.?~\\/-]/, "Password must contain at least one special character" ), confirmPassword: z .string() .min(8, "Password must be at least 8 characters"), }) .refine((data) => data.password === data.confirmPassword, { message: "Passwords do not match", path: ["confirmPassword"], }); const ResetPasswordPage = () => { const [searchParams] = useSearchParams(); const [loading, setLoading] = useState(false); const [hidepass, setHidepass] = useState(true); const token = searchParams.get("token"); const navigate = useNavigate(); const { register, handleSubmit, formState: { errors }, } = useForm({ resolver: zodResolver(resetPasswordSchema), }); const onSubmitResetPassword = async (data) => { try { setLoading(true); const { email, password, confirmPassword } = data; let reqObject = { email, token: token, newPassword: password, }; let response = await AuthRepository.resetPassword(reqObject); showToast("Password Reseted", "success"); clearAllCache(); setLoading(false); navigate("/auth/login", { replace: true }); } catch (error) { setLoading(false); showToast("Token is expries or Invalid ", "error"); } }; return (

Reset Password? 🔒

Enter your email and new password to update.

{errors.email && (
{errors.email.message}
)}
setHidepass(!hidepass)} > {hidepass ? ( ) : ( )}
{errors.password && (
{errors.password.message}
)}
{" "} {" "}
setHidepass(!hidepass)} > {hidepass ? ( ) : ( )}
{errors.confirmPassword && (
{errors.confirmPassword.message}
)}

Password must be at least 8 characters

Password must contain at least one uppercase letter

Password must contain at least one number

Password must contain at least one special character

Back to login
); }; export default ResetPasswordPage;