mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 07:38:33 -06:00
updating page name and quiz name
This commit is contained in:
@@ -122,6 +122,7 @@ export default function ExpandableModule({
|
||||
<div className="grid grid-cols-[auto_1fr]">
|
||||
{moduleItems.map(({ type, item }) => (
|
||||
<ExpandableModuleItem
|
||||
key={item.name + type}
|
||||
type={type}
|
||||
item={item}
|
||||
moduleName={moduleName}
|
||||
|
||||
@@ -11,6 +11,9 @@ import PagePreview from "./PagePreview";
|
||||
import { useLocalCourseSettingsQuery } from "@/hooks/localCourse/localCoursesHooks";
|
||||
import EditPageButtons from "./EditPageButtons";
|
||||
import ClientOnly from "@/components/ClientOnly";
|
||||
import { getModuleItemUrl } from "@/services/urlUtils";
|
||||
import { useRouter } from "next/navigation";
|
||||
import { useCourseContext } from "@/app/course/[courseName]/context/courseContext";
|
||||
|
||||
export default function EditPage({
|
||||
moduleName,
|
||||
@@ -19,6 +22,8 @@ export default function EditPage({
|
||||
pageName: string;
|
||||
moduleName: string;
|
||||
}) {
|
||||
const router = useRouter();
|
||||
const { courseName } = useCourseContext();
|
||||
const { data: page } = usePageQuery(moduleName, pageName);
|
||||
const updatePage = useUpdatePageMutation();
|
||||
const [pageText, setPageText] = useState(
|
||||
@@ -37,11 +42,25 @@ export default function EditPage({
|
||||
localPageMarkdownUtils.toMarkdown(updatedPage)
|
||||
) {
|
||||
console.log("updating page");
|
||||
updatePage.mutate({
|
||||
page: updatedPage,
|
||||
moduleName,
|
||||
pageName,
|
||||
});
|
||||
updatePage
|
||||
.mutateAsync({
|
||||
page: updatedPage,
|
||||
moduleName,
|
||||
pageName: updatedPage.name,
|
||||
previousModuleName: moduleName,
|
||||
previousPageName: pageName,
|
||||
})
|
||||
.then(() => {
|
||||
if (updatedPage.name !== pageName)
|
||||
router.push(
|
||||
getModuleItemUrl(
|
||||
courseName,
|
||||
moduleName,
|
||||
"page",
|
||||
updatedPage.name
|
||||
)
|
||||
);
|
||||
});
|
||||
}
|
||||
setError("");
|
||||
} catch (e: any) {
|
||||
@@ -70,10 +89,7 @@ export default function EditPage({
|
||||
</div>
|
||||
{settings.canvasId && (
|
||||
<ClientOnly>
|
||||
<EditPageButtons
|
||||
pageName={pageName}
|
||||
moduleName={moduleName}
|
||||
/>
|
||||
<EditPageButtons pageName={pageName} moduleName={moduleName} />
|
||||
</ClientOnly>
|
||||
)}
|
||||
</div>
|
||||
|
||||
@@ -10,6 +10,9 @@ import QuizPreview from "./QuizPreview";
|
||||
import { QuizButtons } from "./QuizButton";
|
||||
import ClientOnly from "@/components/ClientOnly";
|
||||
import { SuspenseAndErrorHandling } from "@/components/SuspenseAndErrorHandling";
|
||||
import { useRouter } from "next/navigation";
|
||||
import { getModuleItemUrl } from "@/services/urlUtils";
|
||||
import { useCourseContext } from "@/app/course/[courseName]/context/courseContext";
|
||||
|
||||
const helpString = `QUESTION REFERENCE
|
||||
---
|
||||
@@ -59,6 +62,8 @@ export default function EditQuiz({
|
||||
quizName: string;
|
||||
moduleName: string;
|
||||
}) {
|
||||
const router = useRouter();
|
||||
const { courseName } = useCourseContext();
|
||||
const { data: quiz } = useQuizQuery(moduleName, quizName);
|
||||
const updateQuizMutation = useUpdateQuizMutation();
|
||||
const [quizText, setQuizText] = useState(quizMarkdownUtils.toMarkdown(quiz));
|
||||
@@ -67,7 +72,7 @@ export default function EditQuiz({
|
||||
|
||||
useEffect(() => {
|
||||
const delay = 1000;
|
||||
const handler = setTimeout(() => {
|
||||
const handler = setTimeout(async () => {
|
||||
try {
|
||||
console.log("checking if the same...");
|
||||
if (
|
||||
@@ -77,11 +82,25 @@ export default function EditQuiz({
|
||||
)
|
||||
) {
|
||||
const updatedQuiz = quizMarkdownUtils.parseMarkdown(quizText);
|
||||
updateQuizMutation.mutate({
|
||||
quiz: updatedQuiz,
|
||||
moduleName,
|
||||
quizName,
|
||||
});
|
||||
updateQuizMutation
|
||||
.mutateAsync({
|
||||
quiz: updatedQuiz,
|
||||
moduleName,
|
||||
quizName: updatedQuiz.name,
|
||||
previousModuleName: moduleName,
|
||||
previousQuizName: quizName,
|
||||
})
|
||||
.then(() => {
|
||||
if (updatedQuiz.name !== quizName)
|
||||
router.push(
|
||||
getModuleItemUrl(
|
||||
courseName,
|
||||
moduleName,
|
||||
"quiz",
|
||||
updatedQuiz.name
|
||||
)
|
||||
);
|
||||
});
|
||||
}
|
||||
setError("");
|
||||
} catch (e: any) {
|
||||
@@ -92,7 +111,7 @@ export default function EditQuiz({
|
||||
return () => {
|
||||
clearTimeout(handler);
|
||||
};
|
||||
}, [moduleName, quiz, quizName, quizText, updateQuizMutation]);
|
||||
}, [courseName, moduleName, quiz, quizName, quizText, router, updateQuizMutation]);
|
||||
|
||||
return (
|
||||
<div className="h-full flex flex-col align-middle px-1">
|
||||
|
||||
Reference in New Issue
Block a user