2 Commits

2 changed files with 33 additions and 9 deletions

View File

@@ -12,11 +12,13 @@ import {
useUpdateAssignmentInCanvasMutation,
useDeleteAssignmentFromCanvasMutation,
useAddAssignmentToCanvasMutation,
canvasAssignmentKeys,
} from "@/features/canvas/hooks/canvasAssignmentHooks";
import { useLocalCourseSettingsQuery } from "@/features/local/course/localCoursesHooks";
import { baseCanvasUrl } from "@/features/canvas/services/canvasServiceUtils";
import { useCourseContext } from "../../../context/courseContext";
import Modal, { ModalControl } from "@/components/Modal";
import { useQueryClient } from "@tanstack/react-query";
function getDuplicateName(name: string, existingNames: string[]): string {
const match = name.match(/^(.*)\s+(\d+)$/);
@@ -34,6 +36,7 @@ export const AssignmentDayItemContextMenu: FC<{
item: IModuleItem;
moduleName: string;
}> = ({ modalControl, item, moduleName }) => {
const queryClient = useQueryClient();
const { courseName } = useCourseContext();
const calendarItems = useCalendarItemsContext();
const createAssignmentMutation = useCreateAssignmentMutation();
@@ -68,6 +71,13 @@ export const AssignmentDayItemContextMenu: FC<{
}, [modalControl]);
const handleClose = () => {
for (let i = 1; i <= 8; i += 2) {
setTimeout(() => {
queryClient.invalidateQueries({
queryKey: canvasAssignmentKeys.assignments(settings.canvasId),
});
}, i * 1000);
}
setConfirmingDelete(false);
modalControl.closeModal();
};
@@ -88,7 +98,11 @@ export const AssignmentDayItemContextMenu: FC<{
};
const handleDelete = () => {
deleteLocalMutation.mutate({ courseName, moduleName, assignmentName: item.name });
deleteLocalMutation.mutate({
courseName,
moduleName,
assignmentName: item.name,
});
handleClose();
};
@@ -133,11 +147,7 @@ export const AssignmentDayItemContextMenu: FC<{
<div className="flex flex-col gap-2">
{confirmingDelete ? (
<>
<div
className={``}
>
Delete from disk?
</div>
<div className={``}>Delete from disk?</div>
<button
onClick={handleClose}
className={`unstyled ${baseButtonClasses} ${normalButtonClass}`}

View File

@@ -6,6 +6,7 @@ import {
useAddAssignmentToCanvasMutation,
useDeleteAssignmentFromCanvasMutation,
useUpdateAssignmentInCanvasMutation,
canvasAssignmentKeys,
} from "@/features/canvas/hooks/canvasAssignmentHooks";
import { baseCanvasUrl } from "@/features/canvas/services/canvasServiceUtils";
import {
@@ -19,6 +20,7 @@ import { useRouter } from "next/navigation";
import { useState } from "react";
import { useItemNavigation } from "../../../../hooks/useItemNavigation";
import ItemNavigationButtons from "../../../../components/ItemNavigationButtons";
import { useQueryClient } from "@tanstack/react-query";
export function AssignmentFooterButtons({
moduleName,
@@ -34,9 +36,10 @@ export function AssignmentFooterButtons({
const { data: settings } = useLocalCourseSettingsQuery();
const { data: canvasAssignments, isFetching: canvasIsFetching } =
useCanvasAssignmentsQuery();
const queryClient = useQueryClient();
const { data: assignment, isFetching } = useAssignmentQuery(
moduleName,
assignmentName
assignmentName,
);
const addToCanvas = useAddAssignmentToCanvasMutation();
const deleteFromCanvas = useDeleteAssignmentFromCanvasMutation();
@@ -47,11 +50,11 @@ export function AssignmentFooterButtons({
const { previousUrl, nextUrl } = useItemNavigation(
"assignment",
assignmentName,
moduleName
moduleName,
);
const assignmentInCanvas = canvasAssignments?.find(
(a) => a.name === assignmentName
(a) => a.name === assignmentName,
);
const anythingIsLoading =
@@ -84,6 +87,17 @@ export function AssignmentFooterButtons({
className="btn"
target="_blank"
href={`${baseCanvasUrl}/courses/${settings.canvasId}/assignments/${assignmentInCanvas.id}`}
onClick={() => {
for (let i = 1; i <= 8; i += 2) {
setTimeout(() => {
queryClient.invalidateQueries({
queryKey: canvasAssignmentKeys.assignments(
settings.canvasId,
),
});
}, i * 1000);
}
}}
>
View in Canvas
</a>