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

@ -1,6 +1,6 @@
import { SubmissionController, type SubmissionResponse, type SubmissionsResponse } from "@/controllers/submissions";
import type { SubmissionDTO } from "@dwengo-1/common/interfaces/submission";
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";
function submissionsQueryKey(classid: string, assignmentNumber: number, groupNumber: number, full: boolean) {
@ -10,6 +10,25 @@ function submissionQueryKey(classid: string, assignmentNumber: number, groupNumb
return [ "submission", classid, assignmentNumber, groupNumber, submissionNumber ];
}
export async function invalidateAllSubmissionKeys(
queryClient: QueryClient,
classid?: string,
assignmentNumber?: number,
groupNumber?: number,
submissionNumber?: number,
) {
const keys = [
"submission",
];
for (let key of keys) {
const queryKey = [key, classid, assignmentNumber, groupNumber, submissionNumber].filter(arg => arg !== undefined);
await queryClient.invalidateQueries({ queryKey: queryKey });
}
await queryClient.invalidateQueries({ queryKey: [ "submissions", classid, assignmentNumber, groupNumber ].filter(arg => arg !== undefined) });
}
function checkEnabled(
classid: string | undefined,
assignmentNumber: number | undefined,