import { useCourseContext } from "@/app/course/[courseName]/context/courseContext"; import Modal, { useModal } from "@/components/Modal"; import { Spinner } from "@/components/Spinner"; import { useCanvasAssignmentsQuery, useAddAssignmentToCanvasMutation, useDeleteAssignmentFromCanvasMutation, useUpdateAssignmentInCanvasMutation, } from "@/features/canvas/hooks/canvasAssignmentHooks"; import { baseCanvasUrl } from "@/features/canvas/services/canvasServiceUtils"; import { useAssignmentQuery, useDeleteAssignmentMutation, } from "@/features/local/assignments/assignmentHooks"; import { useLocalCourseSettingsQuery } from "@/features/local/course/localCoursesHooks"; import { getCourseUrl } from "@/services/urlUtils"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { useState } from "react"; export function AssignmentFooterButtons({ moduleName, assignmentName, toggleHelp, }: { assignmentName: string; moduleName: string; toggleHelp: () => void; }) { const router = useRouter(); const { courseName } = useCourseContext(); const { data: settings } = useLocalCourseSettingsQuery(); const { data: canvasAssignments, isFetching: canvasIsFetching } = useCanvasAssignmentsQuery(); const { data: assignment, isFetching } = useAssignmentQuery( moduleName, assignmentName ); const addToCanvas = useAddAssignmentToCanvasMutation(); const deleteFromCanvas = useDeleteAssignmentFromCanvasMutation(); const updateAssignment = useUpdateAssignmentInCanvasMutation(); const deleteLocal = useDeleteAssignmentMutation(); const [isLoading, setIsLoading] = useState(false); const modal = useModal(); const assignmentInCanvas = canvasAssignments?.find( (a) => a.name === assignmentName ); const anythingIsLoading = addToCanvas.isPending || canvasIsFetching || isFetching || deleteFromCanvas.isPending || updateAssignment.isPending; return (
{anythingIsLoading && } {assignmentInCanvas && !assignmentInCanvas?.published && (
Not Published
)} {!assignmentInCanvas && ( )} {assignmentInCanvas && ( View in Canvas )} {assignmentInCanvas && ( )} {assignmentInCanvas && ( )} {!assignmentInCanvas && ( {({ closeModal }) => (
Are you sure you want to delete this assignment locally?

{(deleteLocal.isPending || isLoading) && }
)}
)} Go Back
); }