diff --git a/src/ProtectedRoute.tsx b/src/ProtectedRoute.tsx index e3a9edd..6eabee3 100644 --- a/src/ProtectedRoute.tsx +++ b/src/ProtectedRoute.tsx @@ -1,4 +1,4 @@ -import {useLocation, Outlet, Navigate, Routes, Route} from "react-router-dom"; +import {useLocation, Outlet, Navigate} from "react-router-dom"; import useAuth from "./hooks/useAuth"; import Navbar from "./components/navbar/Navbar"; import Sidebar from "./components/sidebar/Sidebar"; @@ -10,10 +10,9 @@ import { import {Box} from "@mui/material"; const ProtectedRoute = () => { - const { auth }: any = useAuth(); + const auth= useAuth(); const location = useLocation(); - const [meetingInfoOpen, setMeetingInfoOpen] = useState(false); /* Temporary data */ const [sidebarUsers] = useState([ { id: 0, name: "Jincheng L.", meetingStatus: MeetingStatus.ONLINE }, diff --git a/src/components/login/Login.tsx b/src/components/login/Login.tsx index 5ff4a66..3dd9e2d 100644 --- a/src/components/login/Login.tsx +++ b/src/components/login/Login.tsx @@ -1,5 +1,5 @@ -import { useRef, useState, useEffect, useContext } from "react"; -import { useLocation, Link, useNavigate } from "react-router-dom"; +import { useState } from "react"; +import { useLocation, useNavigate } from "react-router-dom"; import { Stack, Typography } from "@mui/material"; import Container from "@mui/material/Container"; import TextField from "@mui/material/TextField"; @@ -9,13 +9,17 @@ import zoomLogo from "../../assets/zoom.png"; import LoginIcon from "@mui/icons-material/Login"; import useAuth from "../../hooks/useAuth"; +interface LocationState { + from: { pathname: string }; +} const Login: React.FC = () => { - const { setAuth }: any = useAuth(); + const setAuth = useAuth(); const navigate = useNavigate(); - const location: any = useLocation(); - const from = location.state?.from?.pathname || "/"; + const location = useLocation(); + const state = location.state as LocationState; + const from = state?.from?.pathname || "/"; const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); @@ -34,7 +38,9 @@ const Login: React.FC = () => { const handleLogin = () => { if (username === "" && password === "") { - setAuth({username: username, isLoggedIn: true}); + // setAuth({username: username, isLoggedIn: true}); + setAuth["username"] = username; + setAuth["isLoggedIn"] = true; navigate(from, {replace: true}); } setUsername(""); @@ -46,8 +52,8 @@ const Login: React.FC = () => { HSBC Logo {/*

{errMsg}

*/} - {setUsername(event.target.value)}}/> - {setPassword(event.target.value)}}/> + {setUsername(event.target.value);}}/> + {setPassword(event.target.value);}}/> Forgot your password? diff --git a/src/context/AuthProvider.tsx b/src/context/AuthProvider.tsx index cb661da..bf70402 100644 --- a/src/context/AuthProvider.tsx +++ b/src/context/AuthProvider.tsx @@ -1,15 +1,20 @@ import { createContext, useState } from "react"; -const AuthContext = createContext({}); - -export const AuthProvider = ({ children }: {children: any}) => { - const [auth, setAuth] = useState({}); - - return ( - - {children} - - ) +interface loginInfo { + username: string; + isLoggedIn: boolean; } +const AuthContext = createContext({username: "", isLoggedIn: false}); + +export const AuthProvider = ({ children }: {children: React.ReactNode}) => { + const [auth] = useState({username: "", isLoggedIn: false}); + + return ( + + {children} + + ); +}; + export default AuthContext; \ No newline at end of file diff --git a/src/hooks/useAuth.tsx b/src/hooks/useAuth.tsx index d1fb072..ebe7cc6 100644 --- a/src/hooks/useAuth.tsx +++ b/src/hooks/useAuth.tsx @@ -1,8 +1,13 @@ import { useContext } from "react"; import AuthContext from "../context/AuthProvider"; -const useAuth = () => { - return useContext(AuthContext); +interface loginInfo { + username: string; + isLoggedIn: boolean; } +const useAuth = () => { + return useContext(AuthContext); +}; + export default useAuth; \ No newline at end of file diff --git a/src/index.tsx b/src/index.tsx index d8f9587..a42a768 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,7 +1,7 @@ import ReactDOM from "react-dom"; import App from "./App"; import "./style/App.css"; -import { AuthProvider } from './context/AuthProvider'; +import { AuthProvider } from "./context/AuthProvider"; const Index:React.FC = () => { return (