From 0135629ae4e973802f4ec328b07c6cdea67c03fc Mon Sep 17 00:00:00 2001 From: Kloon ImKloon Date: Tue, 12 Sep 2023 13:50:18 +0200 Subject: [PATCH] Use StatusError as error type in views --- frontend/src/views/Errors.vue | 14 ++++++++++---- frontend/src/views/Files.vue | 11 +++++++---- frontend/src/views/Share.vue | 9 ++++++--- frontend/src/views/settings/Global.vue | 10 ++++++---- frontend/src/views/settings/Shares.vue | 2 +- frontend/src/views/settings/Users.vue | 2 +- 6 files changed, 31 insertions(+), 17 deletions(-) diff --git a/frontend/src/views/Errors.vue b/frontend/src/views/Errors.vue index 9cf000e1..a895ea9e 100644 --- a/frontend/src/views/Errors.vue +++ b/frontend/src/views/Errors.vue @@ -40,10 +40,16 @@ const errors: { }, }; -const props = defineProps<{ - errorCode: number; - showHeader?: boolean; -}>(); +const props = withDefaults( + defineProps<{ + errorCode?: number; + showHeader?: boolean; + }>(), + { + errorCode: 500, + showHeader: false, + } +); const info = computed(() => { return errors[props.errorCode] ? errors[props.errorCode] : errors[500]; diff --git a/frontend/src/views/Files.vue b/frontend/src/views/Files.vue index 9698aa54..28a31433 100644 --- a/frontend/src/views/Files.vue +++ b/frontend/src/views/Files.vue @@ -8,7 +8,7 @@ - +

@@ -46,6 +46,7 @@ import { useI18n } from "vue-i18n"; import { useRoute } from "vue-router"; import Preview from "@/views/files/Preview.vue"; import FileListing from "@/views/files/FileListing.vue"; +import { StatusError } from "@/api/utils"; const Editor = defineAsyncComponent(() => import("@/views/files/Editor.vue")); const layoutStore = useLayoutStore(); @@ -63,7 +64,7 @@ const clean = (path: string) => { return path.endsWith("/") ? path.slice(0, -1) : path; }; -const error = ref(null); +const error = ref(null); const currentView = computed(() => { if (fileStore.req?.type === undefined) { @@ -134,8 +135,10 @@ const fetchData = async () => { fileStore.updateRequest(res); document.title = `${res.name} - ${document.title}`; - } catch (e: any) { - error.value = e; + } catch (err) { + if (err instanceof StatusError || err instanceof Error) { + error.value = err; + } } finally { layoutStore.loading = false; } diff --git a/frontend/src/views/Share.vue b/frontend/src/views/Share.vue index 6befb971..8e843dd3 100644 --- a/frontend/src/views/Share.vue +++ b/frontend/src/views/Share.vue @@ -197,8 +197,9 @@ import { useLayoutStore } from "@/stores/layout"; import { computed, inject, onBeforeUnmount, onMounted, ref, watch } from "vue"; import { useRoute } from "vue-router"; import { useI18n } from "vue-i18n"; +import { StatusError } from "@/api/utils"; -const error = ref(null); +const error = ref(null); const showLimit = ref(100); const password = ref(""); const attemptedPasswordLogin = ref(false); @@ -279,8 +280,10 @@ const fetchData = async () => { fileStore.updateRequest(file); document.title = `${file.name} - ${document.title}`; - } catch (e) { - error.value = e; + } catch (err) { + if (err instanceof StatusError || err instanceof Error) { + error.value = err; + } } finally { layoutStore.loading = false; } diff --git a/frontend/src/views/settings/Global.vue b/frontend/src/views/settings/Global.vue index 6462bbeb..3e5df51d 100644 --- a/frontend/src/views/settings/Global.vue +++ b/frontend/src/views/settings/Global.vue @@ -158,7 +158,6 @@

{{ t("settings.defaultUserDescription") }}

- (null); +const error = ref(null); const originalSettings = ref(null); const settings = ref(null); const debounceTimeout = ref(null); @@ -381,8 +381,10 @@ onMounted(async () => { originalSettings.value = original; settings.value = newSettings; shellValue.value = newSettings.shell.join("\n"); - } catch (e) { - error.value = e; + } catch (err) { + if (err instanceof StatusError || err instanceof Error) { + error.value = err; + } } finally { layoutStore.loading = false; } diff --git a/frontend/src/views/settings/Shares.vue b/frontend/src/views/settings/Shares.vue index d8be2743..1c1dbe7b 100644 --- a/frontend/src/views/settings/Shares.vue +++ b/frontend/src/views/settings/Shares.vue @@ -1,5 +1,5 @@