From d216caec7d49c51222d8d40963b9fd91e4b671fc Mon Sep 17 00:00:00 2001 From: Sebastian Martinez Date: Thu, 8 Feb 2024 16:04:53 -0300 Subject: [PATCH] Improve catching of errors when loading routes - Handle ResponseParseErros, ResponseErrors and normal errors differently. - Show them all in the same `LoadError` view - Add a subtitle to give users some more information on what could have gone wrong. - Add more properties to the copyable error message to make debugging easier. --- src/App.svelte | 6 +- src/App/Header/Breadcrumbs.svelte | 2 +- src/components/ErrorMessage.svelte | 40 +++++++++++--- src/components/LoadError.svelte | 58 -------------------- src/lib/router.ts | 6 +- src/lib/router/definitions.ts | 16 ++++-- src/lib/utils.ts | 6 +- src/views/error/View.svelte | 38 +++++++++++++ src/views/home/Index.svelte | 70 +++++++++++++----------- src/views/home/error.ts | 41 ++++++++++++++ src/views/home/router.ts | 8 +-- src/views/nodes/View.svelte | 3 +- src/views/nodes/error.ts | 46 ++++++++++++++++ src/views/nodes/router.ts | 27 ++------- src/views/projects/Cob/Revision.svelte | 5 +- src/views/projects/History.svelte | 12 +++- src/views/projects/Issue/New.svelte | 3 +- src/views/projects/Issues.svelte | 9 ++- src/views/projects/Patches.svelte | 9 ++- src/views/projects/error.ts | 59 ++++++++++++++++++++ src/views/projects/router.ts | 40 ++------------ tests/visual/desktop/landingPage.spec.ts | 23 ++++++++ tests/visual/desktop/node.spec.ts | 26 +++++++++ tests/visual/desktop/project.spec.ts | 21 +++++++ 24 files changed, 389 insertions(+), 185 deletions(-) delete mode 100644 src/components/LoadError.svelte create mode 100644 src/views/error/View.svelte create mode 100644 src/views/home/error.ts create mode 100644 src/views/nodes/error.ts create mode 100644 src/views/projects/error.ts diff --git a/src/App.svelte b/src/App.svelte index fae1137b3..155a884d9 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -24,7 +24,7 @@ import Session from "@app/views/session/Index.svelte"; import Source from "@app/views/projects/Source.svelte"; - import LoadError from "@app/components/LoadError.svelte"; + import Error from "@app/views/error/View.svelte"; import Loading from "@app/components/Loading.svelte"; const activeRouteStore = router.activeRouteStore; @@ -87,8 +87,8 @@ {:else if $activeRouteStore.resource === "project.patch"} -{:else if $activeRouteStore.resource === "loadError"} - +{:else if $activeRouteStore.resource === "error"} + {:else if $activeRouteStore.resource === "notFound"} {:else} diff --git a/src/App/Header/Breadcrumbs.svelte b/src/App/Header/Breadcrumbs.svelte index 24d134ef0..c0c8a7e34 100644 --- a/src/App/Header/Breadcrumbs.svelte +++ b/src/App/Header/Breadcrumbs.svelte @@ -20,7 +20,7 @@ } -{#if $activeRouteStore.resource === "booting" || $activeRouteStore.resource === "home" || $activeRouteStore.resource === "session" || $activeRouteStore.resource === "loadError" || $activeRouteStore.resource === "notFound"} +{#if $activeRouteStore.resource === "booting" || $activeRouteStore.resource === "home" || $activeRouteStore.resource === "session" || $activeRouteStore.resource === "error" || $activeRouteStore.resource === "notFound"} {:else if $activeRouteStore.resource === "nodes"}