reassigning modules works

This commit is contained in:
2024-09-20 13:11:09 -06:00
parent 4f8360164d
commit 71ffe61715
12 changed files with 304 additions and 88 deletions

View File

@@ -95,13 +95,36 @@ export const useUpdateAssignmentMutation = () => {
assignment,
moduleName,
previousModuleName,
previousAssignmentName,
assignmentName,
}: {
assignment: LocalAssignment;
moduleName: string;
previousModuleName: string;
previousAssignmentName: string;
assignmentName: string;
}) => {
if (
previousAssignmentName &&
previousModuleName &&
(previousAssignmentName !== assignment.name ||
previousModuleName !== moduleName)
) {
queryClient.removeQueries({
queryKey: localCourseKeys.assignment(
courseName,
previousModuleName,
previousAssignmentName
),
});
queryClient.removeQueries({
queryKey: localCourseKeys.assignmentNames(
courseName,
previousModuleName
),
});
}
queryClient.setQueryData(
localCourseKeys.assignment(courseName, moduleName, assignmentName),
assignment
@@ -113,7 +136,11 @@ export const useUpdateAssignmentMutation = () => {
encodeURIComponent(moduleName) +
"/assignments/" +
encodeURIComponent(assignmentName);
await axiosClient.put(url, { assignment, previousModuleName });
await axiosClient.put(url, {
assignment,
previousModuleName,
previousAssignmentName,
});
},
onSuccess: (_, { moduleName, assignmentName }) => {
queryClient.invalidateQueries({

View File

@@ -87,11 +87,31 @@ export const useUpdatePageMutation = () => {
page,
moduleName,
pageName,
previousModuleName,
previousPageName,
}: {
page: LocalCoursePage;
moduleName: string;
pageName: string;
previousModuleName: string;
previousPageName: string;
}) => {
if (
previousPageName &&
previousModuleName &&
(previousPageName !== page.name || previousModuleName !== moduleName)
) {
queryClient.removeQueries({
queryKey: localCourseKeys.page(
courseName,
previousModuleName,
previousPageName
),
});
queryClient.removeQueries({
queryKey: localCourseKeys.pageNames(courseName, moduleName),
});
}
queryClient.setQueryData(
localCourseKeys.page(courseName, moduleName, pageName),
page
@@ -116,7 +136,6 @@ export const useUpdatePageMutation = () => {
});
};
export const useCreatePageMutation = () => {
const { courseName } = useCourseContext();
const queryClient = useQueryClient();

View File

@@ -10,12 +10,15 @@ import { localCourseKeys } from "./localCourseKeys";
import { useCourseContext } from "@/app/course/[courseName]/context/courseContext";
import { axiosClient } from "@/services/axiosUtils";
export function getQuizNamesQueryConfig(courseName: string, moduleName: string) {
export function getQuizNamesQueryConfig(
courseName: string,
moduleName: string
) {
return {
queryKey: localCourseKeys.quizNames(courseName, moduleName),
queryFn: async (): Promise<string[]> => {
const url = "/api/courses/" +
const url =
"/api/courses/" +
encodeURIComponent(courseName) +
"/modules/" +
encodeURIComponent(moduleName) +
@@ -77,11 +80,31 @@ export const useUpdateQuizMutation = () => {
quiz,
moduleName,
quizName,
previousModuleName,
previousQuizName,
}: {
quiz: LocalQuiz;
moduleName: string;
quizName: string;
previousModuleName: string;
previousQuizName: string;
}) => {
if (
previousQuizName &&
previousModuleName &&
(previousQuizName !== quiz.name || previousModuleName !== moduleName)
) {
queryClient.removeQueries({
queryKey: localCourseKeys.quiz(
courseName,
previousModuleName,
previousQuizName
),
});
queryClient.removeQueries({
queryKey: localCourseKeys.quizNames(courseName, previousModuleName),
});
}
queryClient.setQueryData(
localCourseKeys.quiz(courseName, moduleName, quizName),
quiz
@@ -93,7 +116,15 @@ export const useUpdateQuizMutation = () => {
encodeURIComponent(moduleName) +
"/quizzes/" +
encodeURIComponent(quizName);
await axiosClient.put(url, quiz);
await axiosClient.put(url, {
quiz,
previousModuleName,
previousQuizName,
});
// queryClient.fetchQuery(
// getQuizNamesQueryConfig(courseName, previousModuleName)
// );
},
onSuccess: (_, { moduleName, quizName }) => {
queryClient.invalidateQueries({
@@ -106,7 +137,6 @@ export const useUpdateQuizMutation = () => {
});
};
export const useCreateQuizMutation = () => {
const { courseName } = useCourseContext();
const queryClient = useQueryClient();