diff --git a/nextjs/src/app/course/[courseName]/calendar/CourseCalendar.tsx b/nextjs/src/app/course/[courseName]/calendar/CourseCalendar.tsx
index b927341..fff51b7 100644
--- a/nextjs/src/app/course/[courseName]/calendar/CourseCalendar.tsx
+++ b/nextjs/src/app/course/[courseName]/calendar/CourseCalendar.tsx
@@ -28,7 +28,7 @@ export default function CourseCalendar() {
min-h-0
border-4
border-gray-900
- rounded-xl
+ rounded-lg
bg-slate-950
p-1
"
diff --git a/nextjs/src/app/course/[courseName]/calendar/Day.tsx b/nextjs/src/app/course/[courseName]/calendar/Day.tsx
index ee40a21..251e6bd 100644
--- a/nextjs/src/app/course/[courseName]/calendar/Day.tsx
+++ b/nextjs/src/app/course/[courseName]/calendar/Day.tsx
@@ -17,6 +17,7 @@ import { LocalCoursePage } from "@/models/local/page/localCoursePage";
import { useCanvasAssignmentsQuery } from "@/hooks/canvas/canvasAssignmentHooks";
import { useCanvasQuizzesQuery } from "@/hooks/canvas/canvasQuizHooks";
import { useCanvasPagesQuery } from "@/hooks/canvas/canvasPageHooks";
+import DropTargetStyling from "./DropTargetStyling";
export default function Day({ day, month }: { day: string; month: number }) {
const dayAsDate = getDateFromStringOrThrow(
@@ -45,40 +46,42 @@ export default function Day({ day, month }: { day: string; month: number }) {
return (
itemDrop(e, day)}
onDragOver={(e) => e.preventDefault()}
>
-
-
- {todaysAssignments.map(({ assignment, moduleName, status }) => (
-
- ))}
- {todaysQuizzes.map(({ quiz, moduleName, status }) => (
-
- ))}
- {todaysPages.map(({ page, moduleName, status }) => (
-
- ))}
-
+
+
+
+ {todaysAssignments.map(({ assignment, moduleName, status }) => (
+
+ ))}
+ {todaysQuizzes.map(({ quiz, moduleName, status }) => (
+
+ ))}
+ {todaysPages.map(({ page, moduleName, status }) => (
+
+ ))}
+
+
);
}
@@ -183,6 +186,7 @@ function DraggableListItem({
item: IModuleItem;
}) {
const { courseName } = useCourseContext();
+ const { dragStart } = useDraggingContext();
return (
{item.name}
diff --git a/nextjs/src/app/course/[courseName]/calendar/DropTargetStyling.tsx b/nextjs/src/app/course/[courseName]/calendar/DropTargetStyling.tsx
new file mode 100644
index 0000000..2405faa
--- /dev/null
+++ b/nextjs/src/app/course/[courseName]/calendar/DropTargetStyling.tsx
@@ -0,0 +1,22 @@
+import React, { ReactNode } from "react";
+import { useDraggingContext } from "../context/draggingContext";
+
+export default function DropTargetStyling({
+ children,
+ draggingClassName,
+}: {
+ children: ReactNode;
+ draggingClassName: string;
+}) {
+ const { isDragging } = useDraggingContext();
+ return (
+
+ {children}
+
+ );
+}
diff --git a/nextjs/src/app/course/[courseName]/context/DraggingContextProvider.tsx b/nextjs/src/app/course/[courseName]/context/DraggingContextProvider.tsx
index a4a68e3..5817d88 100644
--- a/nextjs/src/app/course/[courseName]/context/DraggingContextProvider.tsx
+++ b/nextjs/src/app/course/[courseName]/context/DraggingContextProvider.tsx
@@ -1,5 +1,5 @@
"use client";
-import { ReactNode, useCallback, DragEvent } from "react";
+import { ReactNode, useCallback, DragEvent, useState } from "react";
import { DraggingContext } from "./draggingContext";
import { useUpdateQuizMutation } from "@/hooks/localCourse/quizHooks";
import { useLocalCourseSettingsQuery } from "@/hooks/localCourse/localCoursesHooks";
@@ -22,11 +22,13 @@ export default function DraggingContextProvider({
const updateAssignmentMutation = useUpdateAssignmentMutation();
const updatePageMutation = useUpdatePageMutation();
const { data: settings } = useLocalCourseSettingsQuery();
+ const [isDragging, setIsDragging] = useState(false);
+
+ const dragStart = useCallback(() => setIsDragging(true), []);
const itemDrop = useCallback(
(e: DragEvent, day: string | undefined) => {
const rawData = e.dataTransfer.getData("draggableItem");
- // console.log(rawData);
const itemBeingDragged = JSON.parse(rawData);
if (itemBeingDragged && day) {
@@ -66,6 +68,7 @@ export default function DraggingContextProvider({
});
}
}
+ setIsDragging(false);
function updateAssignment(dayAsDate: Date) {
const previousAssignment = itemBeingDragged.item as LocalAssignment;
@@ -101,6 +104,8 @@ export default function DraggingContextProvider({
{children}
diff --git a/nextjs/src/app/course/[courseName]/context/draggingContext.tsx b/nextjs/src/app/course/[courseName]/context/draggingContext.tsx
index bd42bfb..2899426 100644
--- a/nextjs/src/app/course/[courseName]/context/draggingContext.tsx
+++ b/nextjs/src/app/course/[courseName]/context/draggingContext.tsx
@@ -9,12 +9,17 @@ export interface DraggableItem {
}
export interface DraggingContextInterface {
- itemDrop: (e: DragEvent,droppedOnDay?: string) => void;
+ itemDrop: (e: DragEvent, droppedOnDay?: string) => void;
+ isDragging: boolean;
+ dragStart: () => void;
}
const defaultDraggingValue: DraggingContextInterface = {
- itemDrop: () => { },
+ itemDrop: () => {},
+ isDragging: false,
+ dragStart: () => {},
};
-export const DraggingContext = createContext(defaultDraggingValue);
+export const DraggingContext =
+ createContext(defaultDraggingValue);
export function useDraggingContext() {
return useContext(DraggingContext);