"use client"; import { getDateFromStringOrThrow, getDateOnlyMarkdownString, } from "@/models/local/timeUtils"; import { useDraggingContext } from "../context/draggingContext"; import { useCalendarItemsContext } from "../context/calendarItemsContext"; import { useCourseContext } from "../context/courseContext"; import Link from "next/link"; import { IModuleItem } from "@/models/local/IModuleItem"; import { useLocalCourseSettingsQuery } from "@/hooks/localCourse/localCoursesHooks"; import { getDayOfWeek } from "@/models/local/localCourse"; import { getLectureUrl, getModuleItemUrl } from "@/services/urlUtils"; import { LocalAssignment } from "@/models/local/assignment/localAssignment"; import { LocalQuiz } from "@/models/local/quiz/localQuiz"; import { LocalCoursePage } from "@/models/local/page/localCoursePage"; export default function Day({ day, month }: { day: string; month: number }) { const dayAsDate = getDateFromStringOrThrow( day, "calculating same month in day" ); const { data: settings } = useLocalCourseSettingsQuery(); const itemsContext = useCalendarItemsContext(); const { itemDrop } = useDraggingContext(); const dateKey = getDateOnlyMarkdownString(dayAsDate); const todaysModules = itemsContext[dateKey]; const { todaysAssignments, todaysQuizzes, todaysPages } = getTodaysItems(todaysModules); const isInSameMonth = dayAsDate.getMonth() + 1 == month; const classIsToday = settings.daysOfWeek.includes(getDayOfWeek(dayAsDate)); const todayClass = classIsToday ? " bg-slate-900 " : " "; const monthClass = isInSameMonth ? " border border-slate-600 " : " "; return (