diff --git a/src/app/components/PlanetaryInteraction/PlanetaryInteractionRow.tsx b/src/app/components/PlanetaryInteraction/PlanetaryInteractionRow.tsx index 5fdad94..4f3a01a 100644 --- a/src/app/components/PlanetaryInteraction/PlanetaryInteractionRow.tsx +++ b/src/app/components/PlanetaryInteraction/PlanetaryInteractionRow.tsx @@ -26,7 +26,7 @@ const PlanetaryIteractionTable = ({ }) => { const theme = useTheme(); - if (character.invalidToken) + if (character.needsLogin) return (
Character token has expired. Relogin to fix.
diff --git a/src/app/page.tsx b/src/app/page.tsx
index adf8006..51c49ea 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -60,14 +60,13 @@ const Home = () => {
saveCharacters(charactersToSave);
};
- const refreshSession = (characters: AccessToken[]) => {
+ const refreshSession = async (characters: AccessToken[]) => {
return Promise.all(
- characters.map(async (c) => {
+ characters.map((c) => {
try {
- const refreshed = await refreshToken(c);
- return { ...refreshed, invalidToken: false };
- } catch (e) {
- return { ...c, invalidToken: true };
+ return refreshToken(c);
+ } catch {
+ return { ...c, needsLogin: true };
}
}),
);
@@ -79,7 +78,13 @@ const Home = () => {
if (code) {
window.history.replaceState(null, "", "/");
const res = await fetch(`api/token?code=${code}`);
- return [...characters, await res.json()];
+ const newCharacter: AccessToken = await res.json();
+ return [
+ ...characters.filter(
+ (c) => c.character.characterId !== newCharacter.character.characterId,
+ ),
+ newCharacter,
+ ];
}
return Promise.resolve(characters);
};
@@ -88,7 +93,7 @@ const Home = () => {
const localStorageCharacters = localStorage.getItem("characters");
if (localStorageCharacters) {
const characterArray: AccessToken[] = JSON.parse(localStorageCharacters);
- return characterArray;
+ return characterArray.filter((c) => c.access_token && c.character);
}
return [];
}, []);
@@ -98,7 +103,8 @@ const Home = () => {
): Promise