From 8449d145d85ac87f14ab3de52fa8c24a62299a6f Mon Sep 17 00:00:00 2001 From: Arthur DANJOU Date: Mon, 4 Sep 2023 17:16:12 +0200 Subject: [PATCH] Add maintenance system --- src/components/Announcement.vue | 4 +- src/components/header/Header.vue | 12 +++++- src/layouts/maintenance.vue | 22 +++++++++++ src/middlewares/maintenance.ts | 17 +++++++++ src/pages/maintenance.vue | 65 ++++++++++++++++++++++++++++++++ 5 files changed, 117 insertions(+), 3 deletions(-) create mode 100644 src/layouts/maintenance.vue create mode 100644 src/middlewares/maintenance.ts create mode 100644 src/pages/maintenance.vue diff --git a/src/components/Announcement.vue b/src/components/Announcement.vue index 6443474..063fee7 100644 --- a/src/components/Announcement.vue +++ b/src/components/Announcement.vue @@ -12,9 +12,9 @@ function getColor() {

- + - +

diff --git a/src/components/header/Header.vue b/src/components/header/Header.vue index a158e4c..134f599 100644 --- a/src/components/header/Header.vue +++ b/src/components/header/Header.vue @@ -2,7 +2,7 @@
- +
@@ -15,3 +15,13 @@
+ + diff --git a/src/layouts/maintenance.vue b/src/layouts/maintenance.vue new file mode 100644 index 0000000..d4345f8 --- /dev/null +++ b/src/layouts/maintenance.vue @@ -0,0 +1,22 @@ + + + diff --git a/src/middlewares/maintenance.ts b/src/middlewares/maintenance.ts new file mode 100644 index 0000000..ac82de5 --- /dev/null +++ b/src/middlewares/maintenance.ts @@ -0,0 +1,17 @@ +export default defineNuxtRouteMiddleware(async (to, from) => { + let isMaintenance = true + const { $trpc } = useNuxtApp() + + try { + isMaintenance = await $trpc.maintenance.is.query() + } catch (error) { + return navigateTo('/maintenance') + } + + if (isMaintenance) { + return navigateTo('/maintenance') + } + if (!isMaintenance && to.path === '/maintenance') { + return navigateTo('/') + } +}) diff --git a/src/pages/maintenance.vue b/src/pages/maintenance.vue new file mode 100644 index 0000000..033e5f8 --- /dev/null +++ b/src/pages/maintenance.vue @@ -0,0 +1,65 @@ + + +