diff --git a/client/src/Context/UserContext.jsx b/client/src/Context/UserContext.jsx
index d8c8032..af6aaa8 100644
--- a/client/src/Context/UserContext.jsx
+++ b/client/src/Context/UserContext.jsx
@@ -1,21 +1,13 @@
import { createContext, useEffect, useState } from "react";
import axios from "axios";
-import { Loader } from "../components/Loader/Loader";
-import { useNavigate } from "react-router-dom";
export const UserContext = createContext();
export const UserContextProvider = ({ children }) => {
const [user, setUser] = useState(null);
- const navigate = useNavigate();
- const [loading, setLoading] = useState(true);
const token = localStorage.getItem("token");
- if (!token) {
- navigate("/login");
- }
-
const config = {
headers: {
Authorization: `Bearer ${token}`,
@@ -24,28 +16,21 @@ export const UserContextProvider = ({ children }) => {
};
const getUser = async () => {
- try {
- const res = await axios.get(
- `${import.meta.env.VITE_BASE_URL}/user/get`,
- config
- );
- console.log(res.data);
- if (res.data.isverified === true) {
- setUser(res.data);
+ if (token) {
+ try {
+ const res = await axios.get(
+ `${import.meta.env.VITE_BASE_URL}/user/get`,
+ config
+ );
+ console.log(res.data);
+ if (res.data.isverified === true) {
+ setUser(res.data);
+ }
+ } catch (error) {
+ console.log(error);
}
- } catch (error) {
- console.log(error);
- } finally {
- setLoading(false);
}
};
- useEffect(() => {
- getUser();
- }, []);
-
- if (loading) {
- return ;
- }
return (
diff --git a/client/src/components/Dashboard/Dashboard.jsx b/client/src/components/Dashboard/Dashboard.jsx
index 990273b..bbf71d3 100644
--- a/client/src/components/Dashboard/Dashboard.jsx
+++ b/client/src/components/Dashboard/Dashboard.jsx
@@ -15,32 +15,35 @@ const Dashboard = () => {
if (!token) {
navigate("/login");
}
- axios
- .get(`${import.meta.env.VITE_BASE_URL}/user/get`, {
- headers: {
- authorization: `Bearer ${token}`,
- },
- })
- .then((res) => {
- console.log(res.data);
- if (!res.data.isverified) {
- navigate("/verifyotp");
- } else {
- setUser(res.data);
- }
- setLoading(false);
- })
- .catch((err) => {
- console.log(err.response.data.message);
- if (
- err.response.data.message === "Unauthorized" ||
- err.response.data.message === "Failed to verify token" ||
- err.response.data.message === "User not found"
- ) {
- localStorage.removeItem("token");
- navigate("/login");
- }
- });
+
+ if (token) {
+ axios
+ .get(`${import.meta.env.VITE_BASE_URL}/user/get`, {
+ headers: {
+ authorization: `Bearer ${token}`,
+ },
+ })
+ .then((res) => {
+ console.log(res.data);
+ if (!res.data.isverified) {
+ navigate("/verifyotp");
+ } else {
+ setUser(res.data);
+ }
+ setLoading(false);
+ })
+ .catch((err) => {
+ console.log(err.response.data.message);
+ if (
+ err.response.data.message === "Unauthorized" ||
+ err.response.data.message === "Failed to verify token" ||
+ err.response.data.message === "User not found"
+ ) {
+ localStorage.removeItem("token");
+ navigate("/login");
+ }
+ });
+ }
}, []);
if (loading) {
diff --git a/client/src/components/Footer/index.jsx b/client/src/components/Footer/index.jsx
index eb550a3..99d73d0 100644
--- a/client/src/components/Footer/index.jsx
+++ b/client/src/components/Footer/index.jsx
@@ -48,7 +48,6 @@ const Footer = () => {
Contact
{lang[langKey].PrivacyPolicy}
-
@@ -62,10 +61,10 @@ const Footer = () => {
-
-
+
+
© {new Date().getFullYear()}
-
+
ExamTime
. All Rights Reserved.
diff --git a/client/src/components/Navbar/Navbar.jsx b/client/src/components/Navbar/Navbar.jsx
index c755443..a328851 100644
--- a/client/src/components/Navbar/Navbar.jsx
+++ b/client/src/components/Navbar/Navbar.jsx
@@ -5,8 +5,8 @@ import { Badge, Button } from "@material-tailwind/react";
import { UserContext } from "../../Context/UserContext";
import axios from "axios";
import { useLocation, useNavigate } from "react-router";
-import Login from "../Login/Login.jsx";
import { Link } from "react-router-dom";
+import { Bounce, toast } from "react-toastify";
function classNames(...classes) {
return classes.filter(Boolean).join(" ");
@@ -46,24 +46,27 @@ const Navbar = () => {
},
withCredentials: true,
};
- axios
- .get(`${import.meta.env.VITE_BASE_URL}/request`, config)
- .then((res) => {
- setRequests(res.data);
- })
- .catch((error) => {
- toast.error("An error occurred", {
- position: "top-right",
- autoClose: 5000,
- hideProgressBar: false,
- closeOnClick: false,
- pauseOnHover: false,
- draggable: false,
- progress: undefined,
- theme: "light",
- transition: Bounce,
+
+ if (token) {
+ axios
+ .get(`${import.meta.env.VITE_BASE_URL}/request`, config)
+ .then((res) => {
+ setRequests(res.data);
+ })
+ .catch((error) => {
+ toast.error("An error occurred", {
+ position: "top-right",
+ autoClose: 5000,
+ hideProgressBar: false,
+ closeOnClick: false,
+ pauseOnHover: false,
+ draggable: false,
+ progress: undefined,
+ theme: "light",
+ transition: Bounce,
+ });
});
- });
+ }
} catch (error) {
console.log(error);
}
@@ -80,7 +83,7 @@ const Navbar = () => {
} else if (loc === "/question") {
setRequestNav(false);
setUploadNav(false);
- setQuestionNav(true)
+ setQuestionNav(true);
} else if (loc === "/leaderboard") {
setleaderBoardNav(true);
setRequestNav(false);
@@ -133,12 +136,19 @@ const Navbar = () => {
d="M9 8.25H7.5a2.25 2.25 0 00-2.25 2.25v9a2.25 2.25 0 002.25 2.25h9a2.25 2.25 0 002.25-2.25v-9a2.25 2.25 0 00-2.25-2.25H15m0-3l-3-3m0 0l-3 3m3-3V15"
/>
- ) : item.name === "Ask a Question" ? (
-