🐛 Fix circular import in router

This commit is contained in:
2023-06-05 19:45:48 +02:00
parent 7928e4941f
commit d3bfb379c4
3 changed files with 10 additions and 5 deletions

View File

@ -2,7 +2,7 @@
import { MenuIcon } from "lucide-vue-next"; import { MenuIcon } from "lucide-vue-next";
import { computed } from "vue"; import { computed } from "vue";
import { useRoute, useRouter, RouterLink } from "vue-router"; import { useRoute, useRouter, RouterLink } from "vue-router";
import { lastRoute } from "../store"; import { lastRoute } from "../router/index";
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();

View File

@ -1,5 +1,6 @@
import { createRouter, createWebHistory } from "vue-router"; 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 TimetableView from "../views/TimetableView.vue";
import SubstitutionView from "../views/SubstitutionView.vue"; import SubstitutionView from "../views/SubstitutionView.vue";
import HistoryView from "../views/HistoryView.vue"; import HistoryView from "../views/HistoryView.vue";
@ -47,9 +48,14 @@ const router = createRouter({
], ],
}); });
export let lastRoute = ref();
router.beforeEach((_to, from) => { router.beforeEach((_to, from) => {
lastRoute.value = from; lastRoute.value = from;
return true; return true;
}); });
watch(shouldLogin, (value) => {
if (value) router.push("/login");
});
export default router; export default router;

View File

@ -1,10 +1,9 @@
import { ref, watch, computed } from "vue"; import { ref, watch, computed } from "vue";
import router from "./router";
import { getNextAndPrevDay } from "./util"; import { getNextAndPrevDay } from "./util";
import i18n from "./i18n"; import i18n from "./i18n";
/* Router */ /* Router */
export const lastRoute = ref(); export const shouldLogin = ref(false);
export const loading = ref(false); export const loading = ref(false);
export const loadingProgress = ref(0); export const loadingProgress = ref(0);
export const loadingFailed = ref(false); export const loadingFailed = ref(false);
@ -70,7 +69,7 @@ export async function fetchData(days, partial) {
try { try {
const checkResponse = await fetch(`${baseUrl}/check`); const checkResponse = await fetch(`${baseUrl}/check`);
if (checkResponse.status == 401) { if (checkResponse.status == 401) {
router.push("/login"); shouldLogin.value = true;
return; return;
} else if (checkResponse.status != 200) { } else if (checkResponse.status != 200) {
loadingFailed.value = true; loadingFailed.value = true;