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 @@ + + +