running smooth again

This commit is contained in:
2024-09-02 13:10:23 -06:00
parent 895271743f
commit c86bdf3451
29 changed files with 268 additions and 249 deletions

View File

@@ -1,11 +1,6 @@
"use client";
import { ReactNode, useCallback, useState } from "react";
import { DraggableItem, DraggingContext } from "./DraggingContext";
import { LocalQuiz } from "@/models/local/quiz/localQuiz";
import {
dateToMarkdownString,
getDateFromStringOrThrow,
} from "@/models/local/timeUtils";
import { ReactNode, useCallback, DragEvent } from "react";
import { DraggingContext } from "./draggingContext";
import { useUpdateQuizMutation } from "@/hooks/localCourse/quizHooks";
import { useLocalCourseSettingsQuery } from "@/hooks/localCourse/localCoursesHooks";
@@ -17,62 +12,56 @@ export default function DraggingContextProvider({
}) {
const updateQuizMutation = useUpdateQuizMutation();
const { data: settings } = useLocalCourseSettingsQuery();
const [itemBeingDragged, setItemBeingDragged] = useState<
DraggableItem | undefined
>();
const itemDrop = useCallback(
(day: string | undefined) => {
if (itemBeingDragged && day) {
const dayAsDate = getDateFromStringOrThrow(day, "in drop callback");
dayAsDate.setHours(settings.defaultDueTime.hour);
dayAsDate.setHours(settings.defaultDueTime.minute);
if (itemBeingDragged.type === "quiz") {
console.log("dropping quiz");
const previousQuiz = itemBeingDragged.item as LocalQuiz;
(e: DragEvent<HTMLDivElement>, day: string | undefined) => {
// const itemBeingDragged = JSON.parse(
// e.dataTransfer.getData("draggableItem")
// );
const quiz: LocalQuiz = {
...previousQuiz,
dueAt: dateToMarkdownString(dayAsDate),
lockAt:
previousQuiz.lockAt &&
(getDateFromStringOrThrow(previousQuiz.lockAt, "lockAt date") >
dayAsDate
? previousQuiz.lockAt
: dateToMarkdownString(dayAsDate)),
};
updateQuizMutation.mutate({
quiz: quiz,
quizName: quiz.name,
moduleName: itemBeingDragged.sourceModuleName,
});
} else if (itemBeingDragged.type === "assignment") {
console.log("dropped assignment");
} else if (itemBeingDragged.type === "page") {
console.log("dropped page");
}
}
setItemBeingDragged(undefined);
// if (itemBeingDragged && day) {
// const dayAsDate = getDateFromStringOrThrow(day, "in drop callback");
// dayAsDate.setHours(settings.defaultDueTime.hour);
// dayAsDate.setMinutes(settings.defaultDueTime.minute);
// dayAsDate.setSeconds(0);
// console.log("dropped on day", dayAsDate, day);
// if (itemBeingDragged.type === "quiz") {
// console.log("dropping quiz");
// const previousQuiz = itemBeingDragged.item as LocalQuiz;
// const quiz: LocalQuiz = {
// ...previousQuiz,
// dueAt: dateToMarkdownString(dayAsDate),
// lockAt:
// previousQuiz.lockAt &&
// (getDateFromStringOrThrow(previousQuiz.lockAt, "lockAt date") >
// dayAsDate
// ? previousQuiz.lockAt
// : dateToMarkdownString(dayAsDate)),
// };
// updateQuizMutation.mutate({
// quiz: quiz,
// quizName: quiz.name,
// moduleName: itemBeingDragged.sourceModuleName,
// });
// } else if (itemBeingDragged.type === "assignment") {
// console.log("dropped assignment");
// } else if (itemBeingDragged.type === "page") {
// console.log("dropped page");
// }
// }
},
[
itemBeingDragged,
settings.defaultDueTime.hour,
settings.defaultDueTime.minute,
updateQuizMutation,
// settings.defaultDueTime.hour,
// settings.defaultDueTime.minute,
// updateQuizMutation,
]
);
const startItemDrag = useCallback((d: DraggableItem) => {
setItemBeingDragged(d);
}, []);
const endItemDrag = useCallback(() => {
setItemBeingDragged(undefined);
}, []);
return (
<DraggingContext.Provider
value={{
startItemDrag: startItemDrag,
endItemDrag: endItemDrag,
itemDrop,
}}
>