diff --git a/.dockerignore b/.dockerignore index 7c64fb8..14d78cf 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,5 +6,9 @@ temp/ build.sh run.sh README.md +docker-compose.yml +Dockerfile +.next/ +.pnpm-store/ diff --git a/docker-compose.yml b/docker-compose.yml index 8a46bfd..d247f1c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,6 +15,7 @@ services: - ~/projects/faculty/1430/2024-fall-alex/modules:/app/storage/UX - ~/projects/faculty/4850_AdvancedFE/2024-fall-alex/modules:/app/storage/advanced_frontend + - ~/projects/faculty/1810/2024-spring-alex/modules_online:/app/storage/intro_to_web_online_old - ~/projects/faculty/1810/2024-fall-alex/modules:/app/storage/intro_to_web_old - ~/projects/faculty/1810/2025-spring-alex/in-person:/app/storage/intro_to_web - ~/projects/faculty/1810/2025-spring-alex/online:/app/storage/intro_to_web_online diff --git a/src/app/course/[courseName]/calendar/day/DayItemTooltip.tsx b/src/app/course/[courseName]/calendar/day/DayItemTooltip.tsx new file mode 100644 index 0000000..59736fb --- /dev/null +++ b/src/app/course/[courseName]/calendar/day/DayItemTooltip.tsx @@ -0,0 +1,31 @@ +import { ReactNode } from "react"; +import { createPortal } from "react-dom"; + +export const DayItemTooltip: React.FC<{ + message: ReactNode; + targetRef: React.RefObject; + visible: boolean; +}> = ({ message, targetRef, visible }) => { + const rect = targetRef.current?.getBoundingClientRect(); + + return createPortal( + , + document.body + ); +}; diff --git a/src/app/course/[courseName]/calendar/day/ItemInDay.tsx b/src/app/course/[courseName]/calendar/day/ItemInDay.tsx index da6a99d..ea500be 100644 --- a/src/app/course/[courseName]/calendar/day/ItemInDay.tsx +++ b/src/app/course/[courseName]/calendar/day/ItemInDay.tsx @@ -1,15 +1,12 @@ import { IModuleItem } from "@/models/local/IModuleItem"; import { getModuleItemUrl } from "@/services/urlUtils"; import Link from "next/link"; -import { ReactNode, useEffect, useRef, useState } from "react"; +import { ReactNode, useRef, useState } from "react"; import { useCourseContext } from "../../context/courseContext"; -import { - useDraggingContext, - DraggableItem, -} from "../../context/drag/draggingContext"; -import { createPortal } from "react-dom"; +import { DraggableItem } from "../../context/drag/draggingContext"; import ClientOnly from "@/components/ClientOnly"; import { useDragStyleContext } from "../../context/drag/dragStyleContext"; +import { DayItemTooltip } from "./DayItemTooltip"; export function ItemInDay({ type, @@ -53,8 +50,7 @@ export function ItemInDay({ "draggableItem", JSON.stringify(draggableItem) ); - setIsDragging(true) - + setIsDragging(true); }} onMouseEnter={() => setTooltipVisible(true)} onMouseLeave={() => setTooltipVisible(false)} @@ -63,7 +59,7 @@ export function ItemInDay({ {item.name} - ); } - -const Tooltip: React.FC<{ - message: ReactNode; - targetRef: React.RefObject; - visible: boolean; -}> = ({ message, targetRef, visible }) => { - const rect = targetRef.current?.getBoundingClientRect(); - - return createPortal( - , - document.body - ); -}; diff --git a/src/hooks/localCourse/assignmentHooks.ts b/src/hooks/localCourse/assignmentHooks.ts index 06aa0a8..cdcd92c 100644 --- a/src/hooks/localCourse/assignmentHooks.ts +++ b/src/hooks/localCourse/assignmentHooks.ts @@ -109,11 +109,12 @@ export const useUpdateAssignmentMutation = () => { previousModuleName, } ) => { - if (moduleName !== previousModuleName) + if (moduleName !== previousModuleName) { utils.assignment.getAllAssignments.invalidate({ courseName, moduleName: previousModuleName, }); + } utils.assignment.getAllAssignments.invalidate({ courseName, moduleName }); utils.assignment.getAssignment.invalidate({ courseName, diff --git a/src/services/htmlMarkdownUtils.ts b/src/services/htmlMarkdownUtils.ts index e4d8b34..34ae0f0 100644 --- a/src/services/htmlMarkdownUtils.ts +++ b/src/services/htmlMarkdownUtils.ts @@ -1,6 +1,6 @@ "use client"; import { marked } from "marked"; -import * as DOMPurify from "isomorphic-dompurify"; +import DOMPurify from "isomorphic-dompurify"; import { LocalCourseSettings } from "@/models/local/localCourseSettings"; export function extractImageSources(htmlString: string) { diff --git a/src/services/serverFunctions/router/assignmentRouter.ts b/src/services/serverFunctions/router/assignmentRouter.ts index 5cda91b..ca53a64 100644 --- a/src/services/serverFunctions/router/assignmentRouter.ts +++ b/src/services/serverFunctions/router/assignmentRouter.ts @@ -90,7 +90,7 @@ export const assignmentRouter = router({ assignment.name !== previousAssignmentName || moduleName !== previousModuleName ) { - fileStorageService.assignments.delete({ + await fileStorageService.assignments.delete({ courseName, moduleName: previousModuleName, assignmentName: previousAssignmentName, diff --git a/src/services/serverFunctions/router/pageRouter.ts b/src/services/serverFunctions/router/pageRouter.ts index 8d1cded..a7601e8 100644 --- a/src/services/serverFunctions/router/pageRouter.ts +++ b/src/services/serverFunctions/router/pageRouter.ts @@ -81,7 +81,7 @@ export const pageRouter = router({ page.name !== previousPageName || moduleName !== previousModuleName ) { - fileStorageService.pages.delete({ + await fileStorageService.pages.delete({ courseName, moduleName: previousModuleName, pageName: previousPageName, diff --git a/src/services/serverFunctions/router/quizRouter.ts b/src/services/serverFunctions/router/quizRouter.ts index 46b801a..38d7d5c 100644 --- a/src/services/serverFunctions/router/quizRouter.ts +++ b/src/services/serverFunctions/router/quizRouter.ts @@ -84,7 +84,7 @@ export const quizRouter = router({ quiz.name !== previousQuizName || moduleName !== previousModuleName ) { - fileStorageService.quizzes.delete({ + await fileStorageService.quizzes.delete({ courseName, moduleName: previousModuleName, quizName: previousQuizName,