From d87e1b66fb53dea089935ea28dff150412237733 Mon Sep 17 00:00:00 2001 From: GTR1701 Date: Sat, 31 Jan 2026 14:06:20 +0100 Subject: [PATCH 1/4] refactor(calendar): move from custom dates to date-fns --- .../components/arc-academic-semester-card.tsx | 8 ++-- .../components/arc-day-button.tsx | 16 ++++---- .../components/arc-event-card.tsx | 22 ++++++++-- .../components/arc-internal.tsx | 40 +++++++------------ .../types/internal.ts | 10 ----- .../utils/academic-calendar-mapper.tsx | 7 ++-- .../utils/event-calendar-mapper.tsx | 5 ++- .../utils/find-existing-day-swap.ts | 5 ++- .../utils/format-date-object.ts | 6 --- .../utils/format-time.ts | 16 -------- .../utils/get-events-for-day.ts | 14 +++---- .../utils/get-month-by-date.ts | 14 ------- .../utils/get-month-by-number-and-year.ts | 10 ----- .../utils/serialize-date-day.ts | 5 --- 14 files changed, 59 insertions(+), 119 deletions(-) delete mode 100644 src/features/abstract-resource-calendar/utils/format-date-object.ts delete mode 100644 src/features/abstract-resource-calendar/utils/format-time.ts delete mode 100644 src/features/abstract-resource-calendar/utils/get-month-by-date.ts delete mode 100644 src/features/abstract-resource-calendar/utils/get-month-by-number-and-year.ts delete mode 100644 src/features/abstract-resource-calendar/utils/serialize-date-day.ts diff --git a/src/features/abstract-resource-calendar/components/arc-academic-semester-card.tsx b/src/features/abstract-resource-calendar/components/arc-academic-semester-card.tsx index 7abcf32d..e292d117 100644 --- a/src/features/abstract-resource-calendar/components/arc-academic-semester-card.tsx +++ b/src/features/abstract-resource-calendar/components/arc-academic-semester-card.tsx @@ -1,5 +1,7 @@ "use client"; +import { format } from "date-fns"; + import { DeleteButtonWithDialog, EditButton, @@ -7,8 +9,6 @@ import { } from "@/features/resources"; import type { ResourceDataType } from "@/features/resources/types"; -import { serializeDateDay } from "../utils/serialize-date-day"; - export function AcademicSemesterCard({ semester, clickable, @@ -21,8 +21,8 @@ export function AcademicSemesterCard({

{semester.name}

- {serializeDateDay(semester.semesterStartDate)} –{" "} - {serializeDateDay(semester.examSessionLastDate)} + {format(new Date(semester.semesterStartDate), "yyyy-MM-dd")} –{" "} + {format(semester.examSessionLastDate, "yyyy-MM-dd")}

{clickable ? ( diff --git a/src/features/abstract-resource-calendar/components/arc-day-button.tsx b/src/features/abstract-resource-calendar/components/arc-day-button.tsx index 5215b923..b8a354e9 100644 --- a/src/features/abstract-resource-calendar/components/arc-day-button.tsx +++ b/src/features/abstract-resource-calendar/components/arc-day-button.tsx @@ -1,28 +1,28 @@ import { Button } from "@/components/ui/button"; import { cn } from "@/lib/utils"; -import type { DateObject, EventCardType } from "../types/internal"; +import type { EventCardType } from "../types/internal"; import { EventBadge } from "./arc-event-badge"; export function DayButton({ - day, - today, + dayButtonDate, clickable, eventsForDay, currentDate, onDayClick, }: { - day: number; - today: DateObject; + dayButtonDate: Date; clickable: boolean; currentDate: Date; eventsForDay: EventCardType[]; onDayClick: () => void; }) { const isCurrentDay = - day === currentDate.getDate() && - today.month.value === currentDate.getMonth() + 1 && - today.year === currentDate.getFullYear(); + dayButtonDate.getDate() === currentDate.getDate() && + dayButtonDate.getMonth() === currentDate.getMonth() && + dayButtonDate.getFullYear() === currentDate.getFullYear(); + + const day = dayButtonDate.getDate(); return ( - {currentDisplayedMonth.name} {displayedYear} + {format(currentDisplayedMonth, "MMMM")} {displayedYear} - {format(currentDisplayedMonth, "MMMM")} {displayedYear} + {format(currentDisplayedMonth, "LLLL yyyy", { locale: pl })}