diff --git a/frontend/src/context/AuthContext.tsx b/frontend/src/context/AuthContext.tsx index 42164bf..c0c493b 100644 --- a/frontend/src/context/AuthContext.tsx +++ b/frontend/src/context/AuthContext.tsx @@ -2,82 +2,82 @@ import React, { createContext, useState, useContext, useEffect } from "react"; import apiClient from "../services/apiClient"; interface User { - id: string; - username: string; + id: string; + username: string; } interface AuthContextType { - isAuthenticated: boolean; - user: User | null; - setUser: (user: User | null) => void; - loading: boolean; - login: () => void; - logout: () => void; + isAuthenticated: boolean; + user: User | null; + setUser: (user: User | null) => void; + loading: boolean; + login: () => void; + logout: () => void; } const AuthContext = createContext(undefined); export const AuthProvider: React.FC<{ children: React.ReactNode }> = ({ - children, + children, }) => { - const [user, setUser] = useState(null); - const [isAuthenticated, setIsAuthenticated] = useState(false); - const [loading, setLoading] = useState(true); + const [user, setUser] = useState(null); + const [isAuthenticated, setIsAuthenticated] = useState(false); + const [loading, setLoading] = useState(true); - useEffect(() => { - const fetchUser = async () => { - const token = localStorage.getItem("accessToken"); - if (token) { - try { - const response = await apiClient.get("/Auth/me"); - setIsAuthenticated(true); - setLoading(false); - setUser(response.data); - } catch (error) { - console.error("Error fetching user:", error); - setUser(null); - } - } - }; + useEffect(() => { + const fetchUser = async () => { + const token = localStorage.getItem("accessToken"); + if (token) { + try { + const response = await apiClient.get("/Auth/me"); + setIsAuthenticated(true); + setUser(response.data); + } catch (error) { + console.error("Error fetching user:", error); + setUser(null); + } + } + setLoading(false); + }; - fetchUser(); - }, []); + fetchUser(); + }, []); - const login = async () => { - setLoading(false); - setIsAuthenticated(true); - localStorage.removeItem("userBooks"); - const response = await apiClient.get("/Auth/me"); - if (response.data) { - setUser(response.data); - } else { - console.error("Login failed, no user data returned"); - setUser(null); - } - }; + const login = async () => { + setLoading(false); + setIsAuthenticated(true); + localStorage.removeItem("userBooks"); + const response = await apiClient.get("/Auth/me"); + if (response.data) { + setUser(response.data); + } else { + console.error("Login failed, no user data returned"); + setUser(null); + } + }; - const logout = () => { - localStorage.removeItem("accessToken"); - localStorage.removeItem("refreshToken"); - localStorage.removeItem("userBooks"); - setIsAuthenticated(false); - setUser(null); - setLoading(true); - }; + const logout = () => { + localStorage.removeItem("accessToken"); + localStorage.removeItem("refreshToken"); + localStorage.removeItem("userBooks"); + setIsAuthenticated(false); + setUser(null); + setLoading(true); + }; - return ( - - {children} - - ); + return ( + + {children} + + ); }; export const useAuth = () => { - const context = useContext(AuthContext); - if (!context) { - throw new Error("useAuth must be used within an AuthProvider"); - } - return context; + const context = useContext(AuthContext); + if (!context) { + throw new Error("useAuth must be used within an AuthProvider"); + } + return context; };