From 7714815396b4e86afc5db1af3726fab4edf0ca35 Mon Sep 17 00:00:00 2001
From: Zero~Informatique
Date: Sat, 3 Jul 2021 23:07:09 +0200
Subject: viewer: add markdown rendering component
Extracted from b170f49 (GH PR #304)
---
viewer/src/components/async/Markdown.vue | 123 +++++++++++++++++++++++++++++++
viewer/src/components/async/index.ts | 4 +
viewer/src/main.ts | 9 +--
viewer/src/plugins/index.ts | 8 ++
viewer/src/services/fetchWithCheck.ts | 7 ++
5 files changed, 144 insertions(+), 7 deletions(-)
create mode 100644 viewer/src/components/async/Markdown.vue
create mode 100644 viewer/src/components/async/index.ts
create mode 100644 viewer/src/plugins/index.ts
create mode 100644 viewer/src/services/fetchWithCheck.ts
(limited to 'viewer/src')
diff --git a/viewer/src/components/async/Markdown.vue b/viewer/src/components/async/Markdown.vue
new file mode 100644
index 0000000..c4e282b
--- /dev/null
+++ b/viewer/src/components/async/Markdown.vue
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
diff --git a/viewer/src/components/async/index.ts b/viewer/src/components/async/index.ts
new file mode 100644
index 0000000..5a7d9a6
--- /dev/null
+++ b/viewer/src/components/async/index.ts
@@ -0,0 +1,4 @@
+// Declare async constants for internal components
+// Their name can't start with 'Ld'
+
+export const Markdown = () => import(/* webpackChunkName: "markdown" */ "./Markdown.vue");
diff --git a/viewer/src/main.ts b/viewer/src/main.ts
index cccb37b..d0ee3af 100644
--- a/viewer/src/main.ts
+++ b/viewer/src/main.ts
@@ -20,18 +20,13 @@
import "@/assets/scss/global.scss";
import "@/assets/scss/scrollbar.scss";
import "@/assets/scss/transition.scss";
+import { MainLayout } from "@/plugins";
import i18n from "@/plugins/i18n";
import router from "@/plugins/router";
import store from "@/store";
import Vue from "vue";
-Vue.config.productionTip = false;
-import(/* webpackChunkName: "ui" */ "@/plugins/buefy");
-import(/* webpackChunkName: "ui" */ "@/components");
-import(/* webpackChunkName: "ui" */ "@/plugins/lazyimage");
-import(/* webpackChunkName: "ui" */ "@/plugins/dragscroll");
-import(/* webpackChunkName: "ui" */ "@/plugins/fontawesome");
-const MainLayout = () => import(/* webpackChunkName: "ui" */ "@/views/MainLayout.vue");
+Vue.config.productionTip = false;
declare module "vue/types/vue" {
interface Vue {
diff --git a/viewer/src/plugins/index.ts b/viewer/src/plugins/index.ts
new file mode 100644
index 0000000..1555882
--- /dev/null
+++ b/viewer/src/plugins/index.ts
@@ -0,0 +1,8 @@
+export const MainLayout = () =>
+ Promise.all([
+ import(/* webpackChunkName: "ui" */ "@/plugins/buefy"),
+ import(/* webpackChunkName: "ui" */ "@/components"),
+ import(/* webpackChunkName: "ui" */ "@/plugins/lazyimage"),
+ import(/* webpackChunkName: "ui" */ "@/plugins/dragscroll"),
+ import(/* webpackChunkName: "ui" */ "@/plugins/fontawesome"),
+ ]).then(() => import(/* webpackChunkName: "ui" */ "@/views/MainLayout.vue"));
diff --git a/viewer/src/services/fetchWithCheck.ts b/viewer/src/services/fetchWithCheck.ts
new file mode 100644
index 0000000..e84e8b6
--- /dev/null
+++ b/viewer/src/services/fetchWithCheck.ts
@@ -0,0 +1,7 @@
+export default class FetchWithCheck {
+ static async get(url: RequestInfo): Promise {
+ const response = await fetch(url);
+ if (!response.ok) throw new Error(`${response.status}: ${response.statusText}`);
+ return response;
+ }
+}
--
cgit v1.2.3