mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 07:38:33 -06:00
drag and drop quiz also updated lock time
This commit is contained in:
@@ -8,7 +8,6 @@ export default function Day({ day, month }: { day: Date; month: number }) {
|
|||||||
const { data: moduleNames } = useModuleNamesQuery(courseName);
|
const { data: moduleNames } = useModuleNamesQuery(courseName);
|
||||||
const isInSameMonth = day.getMonth() + 1 != month;
|
const isInSameMonth = day.getMonth() + 1 != month;
|
||||||
const backgroundClass = isInSameMonth ? "" : "bg-slate-900";
|
const backgroundClass = isInSameMonth ? "" : "bg-slate-900";
|
||||||
console.log("render");
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
|||||||
@@ -2,8 +2,12 @@
|
|||||||
import { ReactNode, useCallback, useState } from "react";
|
import { ReactNode, useCallback, useState } from "react";
|
||||||
import { CourseContext, DraggableItem } from "./courseContext";
|
import { CourseContext, DraggableItem } from "./courseContext";
|
||||||
import { LocalQuiz } from "@/models/local/quiz/localQuiz";
|
import { LocalQuiz } from "@/models/local/quiz/localQuiz";
|
||||||
import { dateToMarkdownString } from "@/models/local/timeUtils";
|
import {
|
||||||
|
dateToMarkdownString,
|
||||||
|
getDateFromStringOrThrow,
|
||||||
|
} from "@/models/local/timeUtils";
|
||||||
import { useUpdateQuizMutation } from "@/hooks/localCourse/quizHooks";
|
import { useUpdateQuizMutation } from "@/hooks/localCourse/quizHooks";
|
||||||
|
import { useLocalCourseSettingsQuery } from "@/hooks/localCourse/localCoursesHooks";
|
||||||
|
|
||||||
export default function CourseContextProvider({
|
export default function CourseContextProvider({
|
||||||
localCourseName,
|
localCourseName,
|
||||||
@@ -13,6 +17,7 @@ export default function CourseContextProvider({
|
|||||||
localCourseName: string;
|
localCourseName: string;
|
||||||
}) {
|
}) {
|
||||||
const updateQuizMutation = useUpdateQuizMutation(localCourseName);
|
const updateQuizMutation = useUpdateQuizMutation(localCourseName);
|
||||||
|
const { data: settings } = useLocalCourseSettingsQuery(localCourseName);
|
||||||
const [itemBeingDragged, setItemBeingDragged] = useState<
|
const [itemBeingDragged, setItemBeingDragged] = useState<
|
||||||
DraggableItem | undefined
|
DraggableItem | undefined
|
||||||
>();
|
>();
|
||||||
@@ -20,10 +25,20 @@ export default function CourseContextProvider({
|
|||||||
const itemDrop = useCallback(
|
const itemDrop = useCallback(
|
||||||
(day: Date | undefined) => {
|
(day: Date | undefined) => {
|
||||||
if (itemBeingDragged && day) {
|
if (itemBeingDragged && day) {
|
||||||
|
day.setHours(settings.defaultDueTime.hour);
|
||||||
|
day.setHours(settings.defaultDueTime.minute);
|
||||||
if (itemBeingDragged.type === "quiz") {
|
if (itemBeingDragged.type === "quiz") {
|
||||||
|
const previousQuiz = itemBeingDragged.item as LocalQuiz;
|
||||||
|
|
||||||
const quiz: LocalQuiz = {
|
const quiz: LocalQuiz = {
|
||||||
...(itemBeingDragged.item as LocalQuiz),
|
...previousQuiz,
|
||||||
dueAt: dateToMarkdownString(day),
|
dueAt: dateToMarkdownString(day),
|
||||||
|
lockAt:
|
||||||
|
previousQuiz.lockAt &&
|
||||||
|
(getDateFromStringOrThrow(previousQuiz.lockAt, "lockAt date") >
|
||||||
|
day
|
||||||
|
? previousQuiz.lockAt
|
||||||
|
: dateToMarkdownString(day)),
|
||||||
};
|
};
|
||||||
updateQuizMutation.mutate({
|
updateQuizMutation.mutate({
|
||||||
quiz: quiz,
|
quiz: quiz,
|
||||||
@@ -34,7 +49,7 @@ export default function CourseContextProvider({
|
|||||||
}
|
}
|
||||||
setItemBeingDragged(undefined);
|
setItemBeingDragged(undefined);
|
||||||
},
|
},
|
||||||
[itemBeingDragged, updateQuizMutation]
|
[itemBeingDragged, settings.defaultDueTime.hour, settings.defaultDueTime.minute, updateQuizMutation]
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
Reference in New Issue
Block a user