fix/refactor: cache keys gefixt, useMutation argumenten rerefactord

This commit is contained in:
Adriaan Jacquet 2025-04-13 14:37:29 +02:00
parent 75f1ff013b
commit 7bee08537a
4 changed files with 104 additions and 54 deletions

View file

@ -3,7 +3,7 @@ import { GroupController, type GroupResponse, type GroupsResponse } from "@/cont
import type { QuestionsResponse } from "@/controllers/questions";
import type { SubmissionsResponse } from "@/controllers/submissions";
import type { GroupDTO } from "@dwengo-1/common/interfaces/group";
import { useMutation, useQuery, useQueryClient, type UseMutationReturnType, type UseQueryReturnType } from "@tanstack/vue-query";
import { QueryClient, useMutation, useQuery, useQueryClient, type UseMutationReturnType, type UseQueryReturnType } from "@tanstack/vue-query";
import { computed, toValue, type MaybeRefOrGetter } from "vue";
export function groupsQueryKey(classid: string, assignmentNumber: number, full: boolean) {
@ -19,6 +19,26 @@ function groupQuestionsQueryKey(classid: string, assignmentNumber: number, group
return [ "group-questions", classid, assignmentNumber, groupNumber, full ];
}
export async function invalidateAllGroupKeys(
queryClient: QueryClient,
classid?: string,
assignmentNumber?: number,
groupNumber?: number,
) {
const keys = [
"group",
"group-submissions",
"group-questions",
];
for (let key of keys) {
const queryKey = [key, classid, assignmentNumber, groupNumber].filter(arg => arg !== undefined);
await queryClient.invalidateQueries({ queryKey: queryKey });
}
await queryClient.invalidateQueries({ queryKey: [ "groups", classid, assignmentNumber ].filter(arg => arg !== undefined) });
}
function checkEnabled(
classid: string | undefined,
assignmentNumber: number | undefined,