From 2c783bdb703e4ad69c9f3f846c2c9e6a527ccc80 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Tue, 25 Mar 2025 17:23:30 -0400 Subject: Implemented admin dashboard --- web/src/context/middleware.js | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 web/src/context/middleware.js (limited to 'web/src/context') diff --git a/web/src/context/middleware.js b/web/src/context/middleware.js new file mode 100644 index 0000000..044a6b5 --- /dev/null +++ b/web/src/context/middleware.js @@ -0,0 +1,37 @@ +'use client'; +import { createContext, useContext, useEffect, useState } from 'react'; +import { useRouter } from 'next/navigation'; + +const AuthContext = createContext(); + +export function AuthProvider({ children }) { + const [isAuthenticated, setIsAuthenticated] = useState(false); + const [isLoading, setIsLoading] = useState(true); + const router = useRouter(); + + useEffect(() => { + // Check if token exists + const token = localStorage.getItem('token'); + if (token) { + setIsAuthenticated(true); + } else { + router.push('/'); + } + setIsLoading(false); + }, [router]); + + const logout = () => { + localStorage.removeItem('token'); + localStorage.removeItem('apiUrl'); + setIsAuthenticated(false); + router.push('/'); + }; + + return ( + + {children} + + ); +} + +export const useAuth = () => useContext(AuthContext); -- cgit v1.2.3