From 5815796e28b4855d695ababfa2fb14c8b15017e2 Mon Sep 17 00:00:00 2001 From: Thomas Weber Date: Mon, 28 Mar 2022 12:58:03 -0500 Subject: [PATCH] Improve error message when a request fails for an unknown reason --- src/common/errors.js | 7 +++++++ src/common/request.js | 4 +++- src/locales/en.json | 4 ++++ src/p4/Modals.svelte | 7 ++++++- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/common/errors.js b/src/common/errors.js index 15314bc..68a0489 100644 --- a/src/common/errors.js +++ b/src/common/errors.js @@ -11,3 +11,10 @@ export class AbortError extends Error { this.name = 'AbortError'; } } + +export class UnknownNetworkError extends Error { + constructor (url) { + super(`Could not fetch ${url}`); + this.url = url; + } +} diff --git a/src/common/request.js b/src/common/request.js index d7463b9..2148a12 100644 --- a/src/common/request.js +++ b/src/common/request.js @@ -1,3 +1,5 @@ +import {UnknownNetworkError} from './errors'; + const clampProgress = (n) => Math.max(0, Math.min(1, n)); const request = async (options) => { @@ -21,7 +23,7 @@ const request = async (options) => { }; xhr.onerror = () => { cleanup(); - reject(new Error(`Couldn't fetch ${url}, are you offline?`)); + reject(new UnknownNetworkError(url)); }; if (progressCallback) { diff --git a/src/locales/en.json b/src/locales/en.json index 60aa15f..617a5b1 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -25,6 +25,10 @@ "errorMessage": { "string": "Message: {error}" }, + "networkError": { + "string": "Couldn't download {url}. Make sure you're connected to the internet and try disabling any browser extensions.", + "context": "Error displayed when an attempt to download a file failed for an unknown reason." + }, "close": { "string": "Close" }, diff --git a/src/p4/Modals.svelte b/src/p4/Modals.svelte index f795038..f01ad2a 100644 --- a/src/p4/Modals.svelte +++ b/src/p4/Modals.svelte @@ -1,7 +1,7 @@