diff --git a/src/app/components/Login/RefreshButton.tsx b/src/app/components/Login/RefreshButton.tsx index 6e67d36..8d31fba 100644 --- a/src/app/components/Login/RefreshButton.tsx +++ b/src/app/components/Login/RefreshButton.tsx @@ -1,14 +1,15 @@ -import { SessionContext } from "@/app/context/Context"; +import { CharacterContext, SessionContext } from "@/app/context/Context"; import { Button } from "@mui/material"; import { useContext } from "react"; export const RefreshButton = () => { const { refreshSession } = useContext(SessionContext); + const { characters } = useContext(CharacterContext); return ( diff --git a/src/app/context/Context.tsx b/src/app/context/Context.tsx index f5f5cae..0f00ac4 100644 --- a/src/app/context/Context.tsx +++ b/src/app/context/Context.tsx @@ -13,7 +13,7 @@ export const CharacterContext = createContext<{ export const SessionContext = createContext<{ sessionReady: boolean; - refreshSession: () => void; + refreshSession: (characters: AccessToken[]) => void; setSessionReady: Dispatch>; EVE_SSO_CALLBACK_URL: string; EVE_SSO_CLIENT_ID: string; diff --git a/src/app/page.tsx b/src/app/page.tsx index 8c3e8fa..d9c77ab 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -67,6 +67,12 @@ const Home = () => { [characters] ); + const refreshSession = useCallback((characters: AccessToken[]) => { + Promise.all(characters.map((c) => refreshToken(c))) + .then(setCharacters) + .finally(() => setSessionReady(true)); + }, []); + // Handle EVE SSO callback useEffect(() => { if (code) { @@ -92,12 +98,6 @@ const Home = () => { localStorage.setItem("characters", JSON.stringify(characters)); }, [characters]); - const refreshSession = () => { - Promise.all(characters.map((c) => refreshToken(c))) - .then(setCharacters) - .finally(() => setSessionReady(true)); - }; - return (