diff --git a/nextjs/src/app/course/[courseName]/calendar/day/Day.tsx b/nextjs/src/app/course/[courseName]/calendar/day/Day.tsx
index e09e472..f098f12 100644
--- a/nextjs/src/app/course/[courseName]/calendar/day/Day.tsx
+++ b/nextjs/src/app/course/[courseName]/calendar/day/Day.tsx
@@ -10,7 +10,7 @@ import { useLocalCourseSettingsQuery } from "@/hooks/localCourse/localCoursesHoo
import { getDayOfWeek } from "@/models/local/localCourse";
import { getLectureUrl } from "@/services/urlUtils";
import DropTargetStyling from "../../../../../components/DropTargetStyling";
-import { DraggableListItem } from "./DraggableListItem";
+import { ItemInDay } from "./ItemInDay";
import { useTodaysItems } from "./useTodaysItems";
export default function Day({ day, month }: { day: string; month: number }) {
@@ -49,7 +49,7 @@ export default function Day({ day, month }: { day: string; month: number }) {
{todaysAssignments.map(
({ assignment, moduleName, status, message }) => (
-
(
-
))}
{todaysPages.map(({ page, moduleName, status, message }) => (
- , dropModuleName: string) => {
console.log("dropping on module");
const rawData = e.dataTransfer.getData("draggableItem");
+ if (!rawData) return;
const itemBeingDragged: DraggableItem = JSON.parse(rawData);
if (itemBeingDragged) {
@@ -97,6 +98,7 @@ export default function DraggingContextProvider({
const itemDropOnDay = useCallback(
(e: DragEvent, day: string) => {
const rawData = e.dataTransfer.getData("draggableItem");
+ if (!rawData) return;
const itemBeingDragged: DraggableItem = JSON.parse(rawData);
if (itemBeingDragged) {
diff --git a/nextjs/src/app/course/[courseName]/modules/ExpandableModule.tsx b/nextjs/src/app/course/[courseName]/modules/ExpandableModule.tsx
index 73dde3c..a24d02a 100644
--- a/nextjs/src/app/course/[courseName]/modules/ExpandableModule.tsx
+++ b/nextjs/src/app/course/[courseName]/modules/ExpandableModule.tsx
@@ -23,7 +23,7 @@ import NewItemForm from "./NewItemForm";
import { ModuleCanvasStatus } from "./ModuleCanvasStatus";
import ClientOnly from "@/components/ClientOnly";
import ExpandIcon from "../../../../components/icons/ExpandIcon";
-import { useDraggingContext } from "../context/draggingContext";
+import { DraggableItem, useDraggingContext } from "../context/draggingContext";
import DropTargetStyling from "../../../../components/DropTargetStyling";
import Link from "next/link";
import { getModuleItemUrl } from "@/services/urlUtils";
@@ -45,7 +45,6 @@ export default function ExpandableModule({
);
const { data: quizzes } = useQuizzesQueries(moduleName, quizNames);
const { data: pages } = usePagesQueries(moduleName, pageNames);
- const { courseName } = useCourseContext();
const [expanded, setExpanded] = useState(false);
@@ -121,28 +120,13 @@ export default function ExpandableModule({
)}
- {moduleItems.map(({ type, item }) => {
- const date = getDateFromString(item.dueAt);
-
- return (
-
-
- {date && getDateOnlyMarkdownString(date)}
-
-
- {item.name}
-
-
- );
- })}
+ {moduleItems.map(({ type, item }) => (
+
+ ))}
@@ -150,3 +134,44 @@ export default function ExpandableModule({
);
}
+
+function ExpandableModuleItem({
+ type,
+ item,
+ moduleName,
+}: {
+ type: "assignment" | "quiz" | "page";
+ item: IModuleItem;
+ moduleName: string;
+}) {
+ const { courseName } = useCourseContext();
+ const date = getDateFromString(item.dueAt);
+ const { dragStart } = useDraggingContext();
+
+ return (
+
+
+ {date && getDateOnlyMarkdownString(date)}
+
+ {
+ const draggableItem: DraggableItem = {
+ type,
+ item,
+ sourceModuleName: moduleName,
+ };
+ e.dataTransfer.setData(
+ "draggableItem",
+ JSON.stringify(draggableItem)
+ );
+ dragStart();
+ }}
+ >
+ {item.name}
+
+
+ );
+}