diff --git a/src/app/course/[courseName]/modules/[moduleName]/quiz/[quizName]/EditQuiz.tsx b/src/app/course/[courseName]/modules/[moduleName]/quiz/[quizName]/EditQuiz.tsx index c71fca5..e4e0d5f 100644 --- a/src/app/course/[courseName]/modules/[moduleName]/quiz/[quizName]/EditQuiz.tsx +++ b/src/app/course/[courseName]/modules/[moduleName]/quiz/[quizName]/EditQuiz.tsx @@ -15,6 +15,7 @@ import { } from "@/hooks/localCourse/quizHooks"; import { useAuthoritativeUpdates } from "../../../../utils/useAuthoritativeUpdates"; import { extractLabelValue } from "@/models/local/assignment/utils/markdownUtils"; +import EditQuizHeader from "./EditQuizHeader"; const helpString = `QUESTION REFERENCE --- @@ -150,6 +151,7 @@ export default function EditQuiz({ return (
diff --git a/src/app/course/[courseName]/modules/[moduleName]/quiz/[quizName]/EditQuizHeader.tsx b/src/app/course/[courseName]/modules/[moduleName]/quiz/[quizName]/EditQuizHeader.tsx
new file mode 100644
index 0000000..7244f8e
--- /dev/null
+++ b/src/app/course/[courseName]/modules/[moduleName]/quiz/[quizName]/EditQuizHeader.tsx
@@ -0,0 +1,27 @@
+import { useCourseContext } from "@/app/course/[courseName]/context/courseContext";
+import { getCourseUrl } from "@/services/urlUtils";
+import Link from "next/link";
+import { UpdateQuizName } from "./UpdateQuizName";
+
+export default function EditQuizHeader({
+ moduleName,
+ quizName,
+}: {
+ quizName: string;
+ moduleName: string;
+}) {
+ const { courseName } = useCourseContext();
+ return (
+
+
+ {courseName}
+
+
+ {quizName}
+
+ );
+}
diff --git a/src/app/course/[courseName]/modules/[moduleName]/quiz/[quizName]/UpdateQuizName.tsx b/src/app/course/[courseName]/modules/[moduleName]/quiz/[quizName]/UpdateQuizName.tsx
new file mode 100644
index 0000000..67e0ea9
--- /dev/null
+++ b/src/app/course/[courseName]/modules/[moduleName]/quiz/[quizName]/UpdateQuizName.tsx
@@ -0,0 +1,72 @@
+import { useCourseContext } from "@/app/course/[courseName]/context/courseContext";
+import TextInput from "@/components/form/TextInput";
+import Modal, { useModal } from "@/components/Modal";
+import { Spinner } from "@/components/Spinner";
+import {
+ useAssignmentQuery,
+ useUpdateAssignmentMutation,
+} from "@/hooks/localCourse/assignmentHooks";
+import { useQuizQuery, useUpdateQuizMutation } from "@/hooks/localCourse/quizHooks";
+import { getModuleItemUrl } from "@/services/urlUtils";
+import { useRouter } from "next/navigation";
+import { useState } from "react";
+
+export function UpdateQuizName({
+ moduleName,
+ quizName,
+}: {
+ quizName: string;
+ moduleName: string;
+}) {
+ const modal = useModal();
+ const { courseName } = useCourseContext();
+ const router = useRouter();
+ const [quiz] = useQuizQuery(moduleName, quizName);
+ const updateQuiz = useUpdateQuizMutation();
+ const [name, setName] = useState(quiz.name);
+ const [isLoading, setIsLoading] = useState(false);
+
+ return (
+
+
+ {({ closeModal }) => (
+
+ )}
+
+
+ );
+}
diff --git a/src/models/local/quiz/utils/quizMarkdownUtils.ts b/src/models/local/quiz/utils/quizMarkdownUtils.ts
index 50b1aaa..31ab45b 100644
--- a/src/models/local/quiz/utils/quizMarkdownUtils.ts
+++ b/src/models/local/quiz/utils/quizMarkdownUtils.ts
@@ -121,8 +121,7 @@ export const quizMarkdownUtils = {
const questionDelimiter = "\n\n---\n\n";
const questionMarkdown = questionMarkdownArray.join(questionDelimiter);
- return `Name: ${quiz.name}
-LockAt: ${quiz.lockAt ?? ""}
+ return `LockAt: ${quiz.lockAt ?? ""}
DueAt: ${quiz.dueAt}
Password: ${quiz.password ?? ""}
ShuffleAnswers: ${quiz.shuffleAnswers.toString().toLowerCase()}
diff --git a/src/models/local/tests/quizMarkdown/quizMarkdown.test.ts b/src/models/local/tests/quizMarkdown/quizMarkdown.test.ts
index c1d25e2..d7104a4 100644
--- a/src/models/local/tests/quizMarkdown/quizMarkdown.test.ts
+++ b/src/models/local/tests/quizMarkdown/quizMarkdown.test.ts
@@ -28,7 +28,7 @@ this is my description in markdown
const markdown = quizMarkdownUtils.toMarkdown(quiz);
- expect(markdown).toContain("Name: Test Quiz");
+ expect(markdown).not.toContain("Name: Test Quiz");
expect(markdown).toContain(quiz.description);
expect(markdown).toContain("ShuffleAnswers: true");
expect(markdown).toContain("OneQuestionAtATime: false");