From d3bfb379c46db9932e59b3c88acc0fcd4a149bc6 Mon Sep 17 00:00:00 2001 From: minie4 Date: Mon, 5 Jun 2023 19:45:48 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20circular=20import=20in=20r?= =?UTF-8?q?outer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/titlebar-element.vue | 2 +- src/router/index.js | 8 +++++++- src/store.js | 5 ++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/components/titlebar-element.vue b/src/components/titlebar-element.vue index 0b6db43..b72a313 100644 --- a/src/components/titlebar-element.vue +++ b/src/components/titlebar-element.vue @@ -2,7 +2,7 @@ import { MenuIcon } from "lucide-vue-next"; import { computed } from "vue"; import { useRoute, useRouter, RouterLink } from "vue-router"; -import { lastRoute } from "../store"; +import { lastRoute } from "../router/index"; const route = useRoute(); const router = useRouter(); diff --git a/src/router/index.js b/src/router/index.js index f461e1d..c18fd28 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,5 +1,6 @@ import { createRouter, createWebHistory } from "vue-router"; -import { lastRoute } from "../store"; +import { shouldLogin } from "../store"; +import { ref, watch } from "vue"; import TimetableView from "../views/TimetableView.vue"; import SubstitutionView from "../views/SubstitutionView.vue"; import HistoryView from "../views/HistoryView.vue"; @@ -47,9 +48,14 @@ const router = createRouter({ ], }); +export let lastRoute = ref(); router.beforeEach((_to, from) => { lastRoute.value = from; return true; }); +watch(shouldLogin, (value) => { + if (value) router.push("/login"); +}); + export default router; diff --git a/src/store.js b/src/store.js index 359d976..978eb89 100644 --- a/src/store.js +++ b/src/store.js @@ -1,10 +1,9 @@ import { ref, watch, computed } from "vue"; -import router from "./router"; import { getNextAndPrevDay } from "./util"; import i18n from "./i18n"; /* Router */ -export const lastRoute = ref(); +export const shouldLogin = ref(false); export const loading = ref(false); export const loadingProgress = ref(0); export const loadingFailed = ref(false); @@ -70,7 +69,7 @@ export async function fetchData(days, partial) { try { const checkResponse = await fetch(`${baseUrl}/check`); if (checkResponse.status == 401) { - router.push("/login"); + shouldLogin.value = true; return; } else if (checkResponse.status != 200) { loadingFailed.value = true;