diff --git a/src/app/components/PlanetaryInteraction/PlanetaryInteractionRow.tsx b/src/app/components/PlanetaryInteraction/PlanetaryInteractionRow.tsx index e9c1d99..5fdad94 100644 --- a/src/app/components/PlanetaryInteraction/PlanetaryInteractionRow.tsx +++ b/src/app/components/PlanetaryInteraction/PlanetaryInteractionRow.tsx @@ -26,6 +26,13 @@ const PlanetaryIteractionTable = ({ }) => { const theme = useTheme(); + if (character.invalidToken) + return ( +

+ Character token has expired. Relogin to fix. +

+ ); + return ( diff --git a/src/app/page.tsx b/src/app/page.tsx index 3e08411..adf8006 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -61,7 +61,16 @@ const Home = () => { }; const refreshSession = (characters: AccessToken[]) => { - return Promise.all(characters.map((c) => refreshToken(c))); + return Promise.all( + characters.map(async (c) => { + try { + const refreshed = await refreshToken(c); + return { ...refreshed, invalidToken: false }; + } catch (e) { + return { ...c, invalidToken: true }; + } + }), + ); }; const handleCallback = async ( @@ -89,6 +98,7 @@ const Home = () => { ): Promise => Promise.all( characters.map(async (c) => { + if (c.invalidToken) return { ...c, planets: [] }; const planets = await getPlanets(c); const planetsWithInfo: PlanetWithInfo[] = await Promise.all( planets.map(async (p) => ({ diff --git a/src/types.ts b/src/types.ts index f359f6f..725e7ec 100644 --- a/src/types.ts +++ b/src/types.ts @@ -11,6 +11,7 @@ export interface AccessToken { comment: string; system: string; planets: PlanetWithInfo[]; + invalidToken?: boolean; } export interface Character {