From ddd382462a8535d00bf4ca348bfc9f78b6f31e8a Mon Sep 17 00:00:00 2001 From: meskio <meskio@sindominio.net> Date: Thu, 24 Dec 2020 13:10:08 +0100 Subject: [PATCH] Ask for login if can't renew token --- src/App.js | 9 +++++++-- src/Sender.js | 8 +------- src/errors.js | 8 ++++++++ 3 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 src/errors.js diff --git a/src/App.js b/src/App.js index 858e2cc..1d8a877 100644 --- a/src/App.js +++ b/src/App.js @@ -2,6 +2,7 @@ import React, { useEffect, useState } from "react"; import { useStorageItem } from "@capacitor-community/react-hooks/storage"; import Panel from "./Panel"; import AuthContext from "./AuthContext"; +import { ResponseError } from "./errors"; import { url } from "./util"; function App() { @@ -60,7 +61,7 @@ function renewToken(oldToken, setToken) { }) .then((response) => { if (!response.ok) { - throw new Error(response.status.toString() + " " + response.statusText); + throw new ResponseError(response); } return response.json(); }) @@ -69,7 +70,11 @@ function renewToken(oldToken, setToken) { setToken(token); }) .catch((error) => { - console.log("Error renewing token: " + error.message); + if (error instanceof ResponseError && error.response.status === 401) { + setToken(null); + } else { + console.log("Error renewing token: " + error.message); + } }); } diff --git a/src/Sender.js b/src/Sender.js index 2a12a90..ae8a140 100644 --- a/src/Sender.js +++ b/src/Sender.js @@ -1,15 +1,9 @@ import React from "react"; import { Row, Form, Spinner, Alert } from "react-bootstrap"; import AuthContext from "./AuthContext"; +import { ResponseError } from "./errors"; import { url } from "./util"; -class ResponseError extends Error { - constructor(response) { - super(response.status.toString() + " " + response.statusText); - this.response = response; - } -} - class Sender extends React.Component { static contextType = AuthContext; diff --git a/src/errors.js b/src/errors.js new file mode 100644 index 0000000..5069286 --- /dev/null +++ b/src/errors.js @@ -0,0 +1,8 @@ +class ResponseError extends Error { + constructor(response) { + super(response.status.toString() + " " + response.statusText); + this.response = response; + } +} + +export { ResponseError }; -- GitLab