better border

This commit is contained in:
2024-09-11 08:40:06 -06:00
parent fe0014d472
commit dd983982d8
9 changed files with 120 additions and 71 deletions

View File

@@ -8,52 +8,36 @@ 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 { DayOfWeek, getDayOfWeek } from "@/models/local/localCourse";
export default function Day({ day, month }: { day: string; month: number }) {
const dayAsDate = getDateFromStringOrThrow(
day,
"calculating same month in day"
);
const isInSameMonth = dayAsDate.getMonth() + 1 != month;
const backgroundClass = isInSameMonth ? "" : "bg-slate-900";
const { data: settings } = useLocalCourseSettingsQuery();
const itemsContext = useCalendarItemsContext();
const { itemDrop } = useDraggingContext();
const dateKey = getDateOnlyMarkdownString(dayAsDate);
const todaysModules = itemsContext[dateKey];
const todaysAssignments = todaysModules
? Object.keys(todaysModules).flatMap((moduleName) =>
todaysModules[moduleName].assignments.map((assignment) => ({
moduleName,
assignment,
}))
)
: [];
const { todaysAssignments, todaysQuizzes, todaysPages } =
getTodaysItems(todaysModules);
const todaysQuizzes = todaysModules
? Object.keys(todaysModules).flatMap((moduleName) =>
todaysModules[moduleName].quizzes.map((quiz) => ({
moduleName,
quiz,
}))
)
: [];
const isInSameMonth = dayAsDate.getMonth() + 1 == month;
const todaysPages = todaysModules
? Object.keys(todaysModules).flatMap((moduleName) =>
todaysModules[moduleName].pages.map((page) => ({
moduleName,
page,
}))
)
: [];
const classIsToday = settings.daysOfWeek.includes(getDayOfWeek(dayAsDate));
const todayClass = classIsToday ? " bg-slate-900 " : " ";
const monthClass = isInSameMonth ? " border border-slate-600 " : " "
return (
<div
className={
"border border-slate-600 rounded-lg p-2 pb-4 m-1 " + backgroundClass
" rounded-lg p-2 pb-4 m-1 " + todayClass + monthClass
}
onDrop={(e) => itemDrop(e, day)}
onDragOver={(e) => e.preventDefault()}
@@ -89,6 +73,42 @@ export default function Day({ day, month }: { day: string; month: number }) {
);
}
function getTodaysItems(todaysModules: {
[moduleName: string]: {
assignments: import("/home/alexm/projects/canvasManagement/nextjs/src/models/local/assignment/localAssignment").LocalAssignment[];
quizzes: import("/home/alexm/projects/canvasManagement/nextjs/src/models/local/quiz/localQuiz").LocalQuiz[];
pages: import("/home/alexm/projects/canvasManagement/nextjs/src/models/local/page/localCoursePage").LocalCoursePage[];
};
}) {
const todaysAssignments = todaysModules
? Object.keys(todaysModules).flatMap((moduleName) =>
todaysModules[moduleName].assignments.map((assignment) => ({
moduleName,
assignment,
}))
)
: [];
const todaysQuizzes = todaysModules
? Object.keys(todaysModules).flatMap((moduleName) =>
todaysModules[moduleName].quizzes.map((quiz) => ({
moduleName,
quiz,
}))
)
: [];
const todaysPages = todaysModules
? Object.keys(todaysModules).flatMap((moduleName) =>
todaysModules[moduleName].pages.map((page) => ({
moduleName,
page,
}))
)
: [];
return { todaysAssignments, todaysQuizzes, todaysPages };
}
function DraggableListItem({
type,
moduleName,