mostly proper assignment name updates

This commit is contained in:
2024-09-23 08:45:02 -06:00
parent 7af9cab7f0
commit ccaaad1fe4
5 changed files with 35 additions and 22 deletions

View File

@@ -31,8 +31,8 @@ export const PUT = async (
const { assignment, previousModuleName, previousAssignmentName } =
(await request.json()) as {
assignment: LocalAssignment;
previousModuleName?: string;
previousAssignmentName?: string;
previousModuleName: string;
previousAssignmentName: string;
};
await fileStorageService.assignments.updateOrCreateAssignment({
@@ -43,10 +43,8 @@ export const PUT = async (
});
if (
previousModuleName &&
previousAssignmentName &&
(assignment.name !== previousAssignmentName ||
moduleName !== previousModuleName)
assignment.name !== previousAssignmentName ||
moduleName !== previousModuleName
) {
fileStorageService.assignments.delete({
courseName,

View File

@@ -7,7 +7,7 @@ import {
import { localAssignmentMarkdown } from "@/models/local/assignment/localAssignment";
import { useEffect, useState } from "react";
import AssignmentPreview from "./AssignmentPreview";
import { getCourseUrl } from "@/services/urlUtils";
import { getCourseUrl, getModuleItemUrl } from "@/services/urlUtils";
import Link from "next/link";
import { useCourseContext } from "@/app/course/[courseName]/context/courseContext";
import { useLocalCourseSettingsQuery } from "@/hooks/localCourse/localCoursesHooks";
@@ -23,6 +23,7 @@ import ClientOnly from "@/components/ClientOnly";
import { SuspenseAndErrorHandling } from "@/components/SuspenseAndErrorHandling";
import { AssignmentSubmissionType } from "@/models/local/assignment/assignmentSubmissionType";
import { LocalCourseSettings } from "@/models/local/localCourse";
import { useRouter } from "next/navigation";
export default function EditAssignment({
moduleName,
@@ -31,6 +32,8 @@ export default function EditAssignment({
assignmentName: string;
moduleName: string;
}) {
const router = useRouter();
const { courseName } = useCourseContext();
const { data: settings } = useLocalCourseSettingsQuery();
const { data: assignment } = useAssignmentQuery(moduleName, assignmentName);
const updateAssignment = useUpdateAssignmentMutation();
@@ -52,12 +55,24 @@ export default function EditAssignment({
localAssignmentMarkdown.toMarkdown(updatedAssignment)
) {
console.log("updating assignment");
updateAssignment.mutate({
updateAssignment
.mutateAsync({
assignment: updatedAssignment,
moduleName,
assignmentName,
assignmentName: updatedAssignment.name,
previousModuleName: moduleName,
previousAssignmentName: assignment.name,
previousAssignmentName: assignmentName,
})
.then(() => {
if (updatedAssignment.name !== assignmentName)
router.replace(
getModuleItemUrl(
courseName,
moduleName,
"assignment",
updatedAssignment.name
)
);
});
}
setError("");
@@ -73,7 +88,9 @@ export default function EditAssignment({
assignment,
assignmentName,
assignmentText,
courseName,
moduleName,
router,
updateAssignment,
]);

View File

@@ -52,7 +52,7 @@ export default function EditPage({
})
.then(() => {
if (updatedPage.name !== pageName)
router.push(
router.replace(
getModuleItemUrl(
courseName,
moduleName,
@@ -71,7 +71,7 @@ export default function EditPage({
return () => {
clearTimeout(handler);
};
}, [moduleName, page, pageName, pageText, updatePage]);
}, [courseName, moduleName, page, pageName, pageText, router, updatePage]);
return (
<div className="h-full flex flex-col">

View File

@@ -92,7 +92,7 @@ export default function EditQuiz({
})
.then(() => {
if (updatedQuiz.name !== quizName)
router.push(
router.replace(
getModuleItemUrl(
courseName,
moduleName,

View File

@@ -105,10 +105,8 @@ export const useUpdateAssignmentMutation = () => {
assignmentName: string;
}) => {
if (
previousAssignmentName &&
previousModuleName &&
(previousAssignmentName !== assignment.name ||
previousModuleName !== moduleName)
previousAssignmentName !== assignment.name ||
previousModuleName !== moduleName
) {
queryClient.removeQueries({
queryKey: localCourseKeys.assignment(