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 {