diff --git a/client/src/assets/components/subcomponents/CountdownTimer.jsx b/client/src/assets/components/subcomponents/CountdownTimer.jsx new file mode 100644 index 00000000..8ef57f37 --- /dev/null +++ b/client/src/assets/components/subcomponents/CountdownTimer.jsx @@ -0,0 +1,28 @@ +import React, { useState, useEffect } from 'react'; + +const CountdownTimer = () => { + const [timeLeft, setTimeLeft] = useState(5); + + useEffect(() => { + const timer = setInterval(() => { + setTimeLeft(prevTimeLeft => prevTimeLeft - 1); + }, 1000); + + return () => clearInterval(timer); + +}, []); + + useEffect(() => { + if (timeLeft <= 0) { + window.location.href = "/login"; + } + }, [timeLeft]); + + return ( +
+ {timeLeft > 0 ? `You will be redirected to the login page in ${timeLeft} seconds.` : "Redirecting to login page..."} +
+ ); +}; + +export default CountdownTimer; diff --git a/client/src/assets/components/subcomponents/Login.jsx b/client/src/assets/components/subcomponents/Login.jsx index 59a76c0b..fd899933 100644 --- a/client/src/assets/components/subcomponents/Login.jsx +++ b/client/src/assets/components/subcomponents/Login.jsx @@ -45,7 +45,6 @@ const Login = () => { const { message: successMessage, show: showSuccessToast, - showSuccess, } = useSuccessToast(); const handleChange = (e) => { diff --git a/client/src/assets/components/subcomponents/Register.jsx b/client/src/assets/components/subcomponents/Register.jsx index fbfc57f8..d6c61f07 100644 --- a/client/src/assets/components/subcomponents/Register.jsx +++ b/client/src/assets/components/subcomponents/Register.jsx @@ -1,5 +1,5 @@ import React, { useRef, useEffect, useState } from "react"; -import { Link } from "react-router-dom"; +import { Link, Navigate } from "react-router-dom"; import axios from "../../../api/axios"; import { IoMdEyeOff, IoMdEye } from "react-icons/io"; import { FaTimesCircle } from "react-icons/fa"; @@ -9,6 +9,8 @@ import ErrorToast from "../toast/ErrorToast"; import { useErrorToast } from "../toast/useErrorToast"; import SuccessToast from "../toast/SuccessToast"; import { useSuccessToast } from "../toast/useSuccessToast"; +// import CountdownTimer +import CountdownTimer from "./CountdownTimer"; // REGEX for validation const NAME_REGEX = /^[a-zA-Z][a-zA-Z- ]{1,50}$/; @@ -73,6 +75,9 @@ const Register = () => { const [buttonStatus, setButtonStatus] = useState("Sign Up"); + // For countdowntimer + const isCountdownTimer = success; + useEffect(() => { firstNameRef.current.focus(); }, []); @@ -138,7 +143,7 @@ const Register = () => { headers: { "Content-Type": "application/json" }, withCredentials: true, }); - + showSuccess("Registration Successful! You can now log in."); setSuccess(true); // Optionally: navigate to login page @@ -196,12 +201,9 @@ const Register = () => {

You’re all set to start connecting with developers.

-

- - Click here to log in - {" "} - and get started! -

+
+ {isCountdownTimer && } +
@@ -824,6 +826,9 @@ const Register = () => { )} +
+ {isCountdownTimer && } +
{ /> ); -}; +} export default Register;