Move learningPath completion data reloading code

This commit is contained in:
Daniel Egger 2023-03-31 23:51:42 +02:00
parent a0f9e0dfee
commit 84ec0b9c53
2 changed files with 15 additions and 10 deletions

View File

@ -10,8 +10,6 @@ import type {
Topic,
WagtailLearningPath,
} from "@/types";
import eventBus from "@/utils/eventBus";
import log from "loglevel";
export interface ContinueData {
url: string;
@ -100,14 +98,6 @@ export class LearningPath implements WagtailLearningPath {
if (completionData) {
this.calcNextLearningContent(completionData);
}
if (userId) {
// TODO this might become a memory leak without unbinding...
eventBus.on("switchedCourseSession", (courseSession) => {
log.debug("handle switchedCourseSession", courseSession);
this.reloadCompletionData();
});
}
}
public async reloadCompletionData() {

View File

@ -4,7 +4,9 @@ import { useCompletionStore } from "@/stores/completion";
import { useCourseSessionsStore } from "@/stores/courseSessions";
import { useUserStore } from "@/stores/user";
import type { CourseCompletion } from "@/types";
import eventBus from "@/utils/eventBus";
import cloneDeep from "lodash/cloneDeep";
import log from "loglevel";
import { defineStore } from "pinia";
import { computed, reactive } from "vue";
@ -97,5 +99,18 @@ export const useLearningPathStore = defineStore("learningPath", () => {
return learningPath;
}
function reloadCompletionData() {
state.learningPaths.forEach((lp) => {
if (lp.userId) {
lp.reloadCompletionData();
}
});
}
eventBus.on("switchedCourseSession", (courseSession) => {
log.debug("handle switchedCourseSession", courseSession);
reloadCompletionData();
});
return { state, learningPathForUser, loadCompletionData, loadLearningPath };
});