Use StatusError as error type in views
This commit is contained in:
parent
b6616ddeed
commit
0135629ae4
@ -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];
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
|
||||
<breadcrumbs base="/files" />
|
||||
|
||||
<Errors v-if="error" :errorCode="error?.status" />
|
||||
<errors v-if="error" :errorCode="error.status" />
|
||||
<component v-else-if="currentView" :is="currentView"></component>
|
||||
<div v-else>
|
||||
<h2 class="message delayed">
|
||||
@ -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<any | null>(null);
|
||||
const error = ref<StatusError | null>(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;
|
||||
}
|
||||
|
||||
@ -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 | any>(null);
|
||||
const error = ref<StatusError | null>(null);
|
||||
const showLimit = ref<number>(100);
|
||||
const password = ref<string>("");
|
||||
const attemptedPasswordLogin = ref<boolean>(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;
|
||||
}
|
||||
|
||||
@ -158,7 +158,6 @@
|
||||
<div class="card-content">
|
||||
<p class="small">{{ t("settings.defaultUserDescription") }}</p>
|
||||
|
||||
<!-- TODO: idk how to fix this ts error -->
|
||||
<user-form
|
||||
:isNew="false"
|
||||
:isDefault="true"
|
||||
@ -240,8 +239,9 @@ import Themes from "@/components/settings/Themes.vue";
|
||||
import Errors from "@/views/Errors.vue";
|
||||
import { computed, inject, onBeforeUnmount, onMounted, ref } from "vue";
|
||||
import { useI18n } from "vue-i18n";
|
||||
import { StatusError } from "@/api/utils";
|
||||
|
||||
const error = ref<any>(null);
|
||||
const error = ref<StatusError | null>(null);
|
||||
const originalSettings = ref<ISettings | null>(null);
|
||||
const settings = ref<ISettings | null>(null);
|
||||
const debounceTimeout = ref<number | null>(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;
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<errors v-if="error" :errorCode="error.status ?? 400" />
|
||||
<errors v-if="error" :errorCode="error.status" />
|
||||
<div class="row" v-else-if="!layoutStore.loading">
|
||||
<div class="column">
|
||||
<div class="card">
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<errors v-if="error" :errorCode="error.status ?? 400" />
|
||||
<errors v-if="error" :errorCode="error.status" />
|
||||
<div class="row" v-else-if="!layoutStore.loading">
|
||||
<div class="column">
|
||||
<div class="card">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user