mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-27 07:58:31 -06:00
better border
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user