diff options
author | Cyril Strahm <pk99jac@eduvaud.ch> | 2022-04-06 22:50:39 +0300 |
---|---|---|
committer | Cyril Strahm <pk99jac@eduvaud.ch> | 2022-04-06 22:50:39 +0300 |
commit | 1d2f89a38c6743489e399fd9d5021df52d3f6150 (patch) | |
tree | 357efc2e239e2f90151b9206640098af2f30cf90 | |
parent | 2e6ed5298b7851b7ea84dcfa298167689f516496 (diff) |
Display 'temporarily unavailable' when the API can't be reached
-rw-r--r-- | Extensions/combined/_locales/en/messages.json | 3 | ||||
-rw-r--r-- | Extensions/combined/_locales/fr/messages.json | 3 | ||||
-rw-r--r-- | Extensions/combined/src/state.js | 14 | ||||
-rw-r--r-- | Extensions/combined/src/utils.js | 5 |
4 files changed, 24 insertions, 1 deletions
diff --git a/Extensions/combined/_locales/en/messages.json b/Extensions/combined/_locales/en/messages.json index 8493b52..c53f45a 100644 --- a/Extensions/combined/_locales/en/messages.json +++ b/Extensions/combined/_locales/en/messages.json @@ -29,6 +29,9 @@ "textSettingsHover": { "message": "Stops counting your likes and dislikes." }, + "textTempUnavailable": { + "message": "temporarily unavailable" + }, "textUpdate": { "message": "update to" }, diff --git a/Extensions/combined/_locales/fr/messages.json b/Extensions/combined/_locales/fr/messages.json index 78878f0..7556201 100644 --- a/Extensions/combined/_locales/fr/messages.json +++ b/Extensions/combined/_locales/fr/messages.json @@ -29,6 +29,9 @@ "textSettingsHover": { "message": "Arrête de compter les likes et les dislikes mis sur les vidéos." }, + "textTempUnavailable": { + "message": "temporairement indisponible" + }, "textUpdate": { "message": "mettre à jour vers" } diff --git a/Extensions/combined/src/state.js b/Extensions/combined/src/state.js index 6a85e8c..c4abdfa 100644 --- a/Extensions/combined/src/state.js +++ b/Extensions/combined/src/state.js @@ -8,6 +8,7 @@ import { getColorFromTheme, } from "./utils"; import { sendVideoIds } from "./events"; +import { localize } from "./utils"; //TODO: Do not duplicate here and in ryd.background.js const apiUrl = "https://returnyoutubedislikeapi.com"; @@ -124,6 +125,13 @@ function processResponse(response, storedData) { } } +// Tells the user if the API is down +function displayError(error) { + getButtons().children[1].querySelector("#text").innerText = localize( + "textTempUnavailable" + ); +} + async function setState(storedData) { storedData.previousState = isVideoDisliked() ? DISLIKED_STATE @@ -144,8 +152,12 @@ async function setState(storedData) { }, } ) + .then((response) => { + if (!response.ok) displayError(response.error); + return response; + }) .then((response) => response.json()) - .catch(); + .catch(displayError); cLog("response from api:"); cLog(JSON.stringify(response)); likesDisabledState = diff --git a/Extensions/combined/src/utils.js b/Extensions/combined/src/utils.js index 7cedc21..b1acc54 100644 --- a/Extensions/combined/src/utils.js +++ b/Extensions/combined/src/utils.js @@ -29,6 +29,10 @@ function numberFormat(numberState) { ); } +function localize(localeString) { + return chrome.i18n.getMessage(localeString); +} + function getNumberFormatter(optionSelect) { let formatterNotation; let formatterCompactDisplay; @@ -151,4 +155,5 @@ export { isVideoLoaded, cLog, getColorFromTheme, + localize, }; |