diff --git a/src/app/course/[courseName]/calendar/day/itemInDay/DayItemContextMenu.tsx b/src/app/course/[courseName]/calendar/day/itemInDay/DayItemContextMenu.tsx index 78e616b..3f975e5 100644 --- a/src/app/course/[courseName]/calendar/day/itemInDay/DayItemContextMenu.tsx +++ b/src/app/course/[courseName]/calendar/day/itemInDay/DayItemContextMenu.tsx @@ -11,6 +11,7 @@ import { useCanvasAssignmentsQuery, useUpdateAssignmentInCanvasMutation, useDeleteAssignmentFromCanvasMutation, + useAddAssignmentToCanvasMutation, } from "@/features/canvas/hooks/canvasAssignmentHooks"; import { useLocalCourseSettingsQuery } from "@/features/local/course/localCoursesHooks"; import { baseCanvasUrl } from "@/features/canvas/services/canvasServiceUtils"; @@ -35,12 +36,13 @@ export const AssignmentDayItemContextMenu: FC<{ }> = ({ modalControl, item, moduleName }) => { const { courseName } = useCourseContext(); const calendarItems = useCalendarItemsContext(); - const createAssignment = useCreateAssignmentMutation(); - const deleteLocal = useDeleteAssignmentMutation(); + const createAssignmentMutation = useCreateAssignmentMutation(); + const deleteLocalMutation = useDeleteAssignmentMutation(); + const updateInCanvasMutation = useUpdateAssignmentInCanvasMutation(); + const deleteFromCanvasMutation = useDeleteAssignmentFromCanvasMutation(); + const addToCanvasMutation = useAddAssignmentToCanvasMutation(); const { data: canvasAssignments } = useCanvasAssignmentsQuery(); const { data: settings } = useLocalCourseSettingsQuery(); - const updateInCanvas = useUpdateAssignmentInCanvasMutation(); - const deleteFromCanvas = useDeleteAssignmentFromCanvasMutation(); const [confirmingDelete, setConfirmingDelete] = useState(false); @@ -76,7 +78,7 @@ export const AssignmentDayItemContextMenu: FC<{ (modules[moduleName]?.assignments ?? []).map((a) => a.name), ); const newName = getDuplicateName(item.name, existingNames); - createAssignment.mutate({ + createAssignmentMutation.mutate({ courseName, moduleName, assignmentName: newName, @@ -86,13 +88,13 @@ export const AssignmentDayItemContextMenu: FC<{ }; const handleDelete = () => { - deleteLocal.mutate({ courseName, moduleName, assignmentName: item.name }); + deleteLocalMutation.mutate({ courseName, moduleName, assignmentName: item.name }); handleClose(); }; const handleUpdateCanvas = () => { if (assignmentInCanvas) { - updateInCanvas.mutate({ + updateInCanvasMutation.mutate({ canvasAssignmentId: assignmentInCanvas.id, assignment: item as LocalAssignment, }); @@ -102,7 +104,7 @@ export const AssignmentDayItemContextMenu: FC<{ const handleDeleteFromCanvas = () => { if (assignmentInCanvas) { - deleteFromCanvas.mutate({ + deleteFromCanvasMutation.mutate({ canvasAssignmentId: assignmentInCanvas.id, assignmentName: item.name, }); @@ -110,84 +112,101 @@ export const AssignmentDayItemContextMenu: FC<{ } }; - const baseButtonClasses = "w-full text-left px-4 py-2"; - const normalHoverClasses = "hover:bg-slate-700 disabled:opacity-50"; + const handleAddToCanvas = () => { + addToCanvasMutation.mutate({ + assignment: item as LocalAssignment, + moduleName, + }); + handleClose(); + }; + + const baseButtonClasses = " font-bold text-left py-1"; + const normalButtonClass = + "hover:bg-blue-900 disabled:opacity-50 bg-blue-900/50 text-blue-50 border border-blue-800/70 rounded "; const dangerClasses = - "bg-rose-900/30 hover:bg-rose-950 disabled:opacity-50 text-rose-50"; + "bg-rose-900/30 hover:bg-rose-950 disabled:opacity-50 text-rose-50 border border-rose-900/40 rounded"; return ( {() => ( - <> -
- {item.name} -
- {confirmingDelete ? ( - <> - - - - - ) : ( - <> - {canvasUrl && ( - <> - - View in Canvas - - - - - )} - {!canvasUrl && ( +
+
{item.name}
+
+ {confirmingDelete ? ( + <> +
+ Delete from disk? +
+ - )} - - - )} - + + ) : ( + <> + {canvasUrl && ( + <> + + View in Canvas + + + + + )} + {!canvasUrl && ( + <> + + + + )} + + + )} +
+
)}
);