Some refactoring in course sessions

This commit is contained in:
Daniel Egger 2023-04-03 16:05:50 +02:00
parent 4996eb565a
commit 1d04fa20f5
4 changed files with 11 additions and 17 deletions

View File

@ -2,6 +2,7 @@ import DashboardPage from "@/pages/DashboardPage.vue";
import LoginPage from "@/pages/LoginPage.vue"; import LoginPage from "@/pages/LoginPage.vue";
import { redirectToLoginIfRequired, updateLoggedIn } from "@/router/guards"; import { redirectToLoginIfRequired, updateLoggedIn } from "@/router/guards";
import { useAppStore } from "@/stores/app"; import { useAppStore } from "@/stores/app";
import { useCourseSessionsStore } from "@/stores/courseSessions";
import { createRouter, createWebHistory } from "vue-router"; import { createRouter, createWebHistory } from "vue-router";
const router = createRouter({ const router = createRouter({
@ -165,11 +166,11 @@ router.beforeEach(updateLoggedIn);
router.beforeEach(redirectToLoginIfRequired); router.beforeEach(redirectToLoginIfRequired);
router.beforeEach((to) => { router.beforeEach((to) => {
const appStore = useAppStore(); const courseSessionStore = useCourseSessionsStore();
if (to.params.courseSlug) { if (to.params.courseSlug) {
appStore.currentCourseSlug = to.params.courseSlug as string; courseSessionStore.currentCourseSlug = to.params.courseSlug as string;
} else { } else {
appStore.currentCourseSlug = ""; courseSessionStore.currentCourseSlug = "";
} }
}); });

View File

@ -32,7 +32,6 @@ export const useAppStore = defineStore({
showMainNavigationBar: showMainNavigationBarInitialState(), showMainNavigationBar: showMainNavigationBarInitialState(),
userLoaded: false, userLoaded: false,
routingFinished: false, routingFinished: false,
currentCourseSlug: "",
} as AppState), } as AppState),
getters: {}, getters: {},
actions: {}, actions: {},

View File

@ -1,5 +1,4 @@
import { bustItGetCache, itGetCached, itPost } from "@/fetchHelpers"; import { bustItGetCache, itGetCached, itPost } from "@/fetchHelpers";
import { useAppStore } from "@/stores/app";
import { useCourseSessionsStore } from "@/stores/courseSessions"; import { useCourseSessionsStore } from "@/stores/courseSessions";
import { useUserStore } from "@/stores/user"; import { useUserStore } from "@/stores/user";
import type { BaseCourseWagtailPage, CourseCompletion } from "@/types"; import type { BaseCourseWagtailPage, CourseCompletion } from "@/types";
@ -31,8 +30,8 @@ export const useCompletionStore = defineStore({
courseSessionId: number | undefined = undefined courseSessionId: number | undefined = undefined
) { ) {
if (!courseSessionId) { if (!courseSessionId) {
const appStore = useAppStore(); const courseSessionsStore = useCourseSessionsStore();
const courseSlug = appStore.currentCourseSlug; const courseSlug = courseSessionsStore.currentCourseSlug;
if (courseSlug) { if (courseSlug) {
const courseSessionsStore = useCourseSessionsStore(); const courseSessionsStore = useCourseSessionsStore();
const courseSession = courseSessionsStore.courseSessionForCourse(courseSlug); const courseSession = courseSessionsStore.courseSessionForCourse(courseSlug);

View File

@ -12,7 +12,6 @@ import uniqBy from "lodash/uniqBy";
import log from "loglevel"; import log from "loglevel";
import { defineStore } from "pinia"; import { defineStore } from "pinia";
import { computed, ref } from "vue"; import { computed, ref } from "vue";
import { useRoute } from "vue-router";
import { useCircleStore } from "./circle"; import { useCircleStore } from "./circle";
import { useUserStore } from "./user"; import { useUserStore } from "./user";
@ -73,6 +72,8 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
new Map<string, number>() new Map<string, number>()
); );
const currentCourseSlug = ref("");
// these will become getters // these will become getters
const userCourses = computed(() => const userCourses = computed(() =>
// TODO: refactor after implementing of Klassenkonzept // TODO: refactor after implementing of Klassenkonzept
@ -123,19 +124,12 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
}); });
} }
const courseSlugForRoute = computed(() => {
const route = useRoute();
return (route.params.courseSlug as string) ?? undefined;
});
const courseSessionForRoute = computed(() => { const courseSessionForRoute = computed(() => {
const courseSlug = courseSlugForRoute.value; return courseSessionForCourse(currentCourseSlug.value);
return courseSessionForCourse(courseSlug);
}); });
const courseSessionsForRoute = computed(() => { const courseSessionsForRoute = computed(() => {
const courseSlug = courseSlugForRoute.value; return courseSessionsForCourse(currentCourseSlug.value);
return courseSessionsForCourse(courseSlug);
}); });
const hasCockpit = computed(() => { const hasCockpit = computed(() => {
@ -218,6 +212,7 @@ export const useCourseSessionsStore = defineStore("courseSessions", () => {
} }
return { return {
currentCourseSlug,
courseSessions, courseSessions,
userCourses, userCourses,
courseSessionForRoute, courseSessionForRoute,