Reset Password #64

Merged
tokslaw merged 1 commits from reset-password into master 2023-02-27 12:51:05 +00:00
2 changed files with 31 additions and 11 deletions
@@ -3,34 +3,49 @@ import { Link, useNavigate } from 'react-router-dom';
import titleShape from "../../../assets/images/shape/title-shape-two.svg";
import InputCom from "../../Helpers/Inputs/InputCom";
import AuthLayout from "../AuthLayout";
import usersService from "../../../services/UsersService";
export default function ForgotPassword() {
const navigate = useNavigate();
const [validation, setValidation] = useState("")
const [buttonDisabled, setButtonDisabled] = useState(true)
const [loading, setLoading] = useState(false);
const user = new usersService()
// email
const [email, setEmail] = useState("");
const handleEmail = (e) => {
setEmail(e.target.value);
};
function validationChecker(email) {
const emailCheck = /^[^0-9][a-zA-Z0-9._%+-]+@[a-zA-Z]+(\.[a-zA-Z]+)+$/;
if (email === "") {
setValidation("email is required");
} else if (!email.match(emailCheck)) {
setValidation('Please input a valid email address');
} else {
setValidation("");
setButtonDisabled(false)
}
}
const handleSubmit = async() => {
const resetEmail = {
username: email,
stage: 100
}
const reset = await user.resetPassword(resetEmail);
setLoading(true)
if (reset.status == 200){
setTimeout(() => {
navigate("/verify-you", {replace : true});
setLoading(false)
}, 2000);
}else{
setValidation('An error occurred')
}
}
useEffect(() => {
validationChecker(email)
}, [email])
@@ -61,21 +76,21 @@ export default function ForgotPassword() {
inputHandler={handleEmail}
value={email}
/>
{validation && <p className="my-5 font-bold text-red-500">{validation}</p>}
{validation && <p className="my-5 text-center font-light italic subpixel-antialiased tracking-wide text-red-500">{validation}</p>}
</div>
<div className="signin-area mb-3.5">
<button
className="w-full rounded-[50px] mb-5 h-[58px] text-xl text-white font-bold flex justify-center bg-purple items-center"
className="w-full rounded-[50px] h-[58px] text-xl text-white font-bold flex justify-center bg-purple items-center"
disabled={buttonDisabled}
onClick={() => navigate("/verify-you")}
onClick={handleSubmit}
>
Send Code
{loading ? <div className="signup btn-loader"></div> : <span>Send Code</span>}
</button>
<Link to="/"
className="my-40 font-bold flex justify-center text-red-500 items-center"
className="mt-5 cursor-default font-bold flex justify-center subpixel-antialiased tracking-wide text-white items-center h-[58px] rounded-[50px] bg-[#1a3544a2]"
>
Back to Home
</Link>
+6 -1
View File
@@ -5,6 +5,11 @@ class usersService {
console.log("Er are here anyway");
}
// Reset Password
resetPassword(reqData) {
return this.postAuxEnd('/resetpass', reqData);
}
logInUser(reqData) {
localStorage.setItem("session_token", ``);
return this.postAuxEnd("/login", reqData);
@@ -123,7 +128,7 @@ class usersService {
if (error.response) {
//response status is an error code
console.log("ERROR-------------------------------------------------------");
console.log(error.response.status);
console.log(error.response.status, 'err');
console.log("ERROR-------------------------------------------------------");
} else if (error.request) {
//response not received though the request was sent