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 [hidepass1, setHidepass1] = useState(true); const [tokenExpired, setTokenExpired] = useState(false); 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(); navigate("/auth/login", { replace: true }); // setLoading(false); } catch (error) { debugger; setLoading(false); if (error?.response?.status === 400) { showToast("Please check valid Credentials", "error"); } else { setTokenExpired(true); } } }; if (tokenExpired) { return (

Invalid Link 🔒

This link appears to be invalid or expired. Please use the 'Forgot Password' feature to set your new password.

Go to Forgot Password
); } return (

Reset Password? 🔒

Enter your email and new password to update.

{errors.email && (
{errors.email.message}
)}
{errors.password && (
{errors.password.message}
)}
{" "} {" "}
{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;