Handle token refresh errors and tell the user the token has expired
This commit is contained in:
@@ -26,6 +26,13 @@ const PlanetaryIteractionTable = ({
|
|||||||
}) => {
|
}) => {
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
|
|
||||||
|
if (character.invalidToken)
|
||||||
|
return (
|
||||||
|
<p style={{ color: "red" }}>
|
||||||
|
Character token has expired. Relogin to fix.
|
||||||
|
</p>
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<StackItem width="100%">
|
<StackItem width="100%">
|
||||||
<TableContainer component={Paper}>
|
<TableContainer component={Paper}>
|
||||||
|
@@ -61,7 +61,16 @@ const Home = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const refreshSession = (characters: AccessToken[]) => {
|
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 (
|
const handleCallback = async (
|
||||||
@@ -89,6 +98,7 @@ const Home = () => {
|
|||||||
): Promise<AccessToken[]> =>
|
): Promise<AccessToken[]> =>
|
||||||
Promise.all(
|
Promise.all(
|
||||||
characters.map(async (c) => {
|
characters.map(async (c) => {
|
||||||
|
if (c.invalidToken) return { ...c, planets: [] };
|
||||||
const planets = await getPlanets(c);
|
const planets = await getPlanets(c);
|
||||||
const planetsWithInfo: PlanetWithInfo[] = await Promise.all(
|
const planetsWithInfo: PlanetWithInfo[] = await Promise.all(
|
||||||
planets.map(async (p) => ({
|
planets.map(async (p) => ({
|
||||||
|
@@ -11,6 +11,7 @@ export interface AccessToken {
|
|||||||
comment: string;
|
comment: string;
|
||||||
system: string;
|
system: string;
|
||||||
planets: PlanetWithInfo[];
|
planets: PlanetWithInfo[];
|
||||||
|
invalidToken?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Character {
|
export interface Character {
|
||||||
|
Reference in New Issue
Block a user