diff --git a/src/App.tsx b/src/App.tsx
index 02d7f8f..e15b9c9 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,5 +1,7 @@
// Modules
+import { useMemo, useState, useEffect } from "react";
import { Routes, Route } from "react-router-dom";
+import { UserContext } from "./context/UserContext";
// Style
import "./assets/styles/style.scss";
@@ -8,12 +10,29 @@ import "./assets/styles/style.scss";
import Login from "./pages/Login";
const App = () => {
+ const [user, setUser] = useState({
+ username: "",
+ accessLevel: "",
+ });
+
+ useEffect(() => {
+ const userData = localStorage.getItem("userData");
+
+ if (userData) {
+ setUser(JSON.parse(userData));
+ }
+ }, []);
+
+ const userValue = useMemo(() => ({ user, setUser }), [user, setUser]);
+
return (
-
-
- } />
-
-
+
+
+
+ } />
+
+
+
);
};
diff --git a/src/context/UserContext.tsx b/src/context/UserContext.tsx
new file mode 100644
index 0000000..d01c3d8
--- /dev/null
+++ b/src/context/UserContext.tsx
@@ -0,0 +1,4 @@
+// Modules
+import { createContext } from "react";
+
+export const UserContext: any = createContext(null);
diff --git a/src/pages/Login.tsx b/src/pages/Login.tsx
index 9b5c296..07e2994 100644
--- a/src/pages/Login.tsx
+++ b/src/pages/Login.tsx
@@ -1,10 +1,14 @@
-import React, { useState, useEffect } from "react";
+// Modules
+import React, { useState, useEffect, useContext } from "react";
+import { UserContext } from "../context/UserContext";
+import { useNavigate } from "react-router-dom";
const Login = () => {
const cred: Record = {
- username: "admin@2022",
+ username: "admin_2022",
password: "backpackadmin",
};
+
const [valid, setValid] = useState({
username: "",
password: "",
@@ -12,6 +16,9 @@ const Login = () => {
valid: false,
});
+ const { user, setUser } = useContext(UserContext);
+ const navigate = useNavigate();
+
useEffect(() => {
if (valid.username === cred.username && valid.password === cred.password) {
setValid({ ...valid, valid: true });
@@ -20,6 +27,12 @@ const Login = () => {
}
}, [valid.username, valid.password]);
+ useEffect(() => {
+ if (user.username) {
+ navigate("/");
+ }
+ }, [user]);
+
return (
@@ -75,8 +88,14 @@ const Login = () => {