import { useEffect, useState, useMemo } from "react"; import { UserProfile } from "../types"; export function useAuth() { const [accessToken, setAccessToken] = useState(() => localStorage.getItem("accessToken")); useEffect(() => { const handler = () => setAccessToken(localStorage.getItem("accessToken")); window.addEventListener("storage", handler); return () => window.removeEventListener("storage", handler); }, []); const profile = useMemo(() => { const data = sessionStorage.getItem("userProfile"); return data ? JSON.parse(data) : null; }, [accessToken]); const isAuthed = !!accessToken; const logout = () => { localStorage.removeItem("accessToken"); localStorage.removeItem("refreshToken"); sessionStorage.removeItem("userProfile"); setAccessToken(null); }; return { accessToken, isAuthed, profile, logout }; }