From 64eeaadd2862bc8c3d783b984650abaabc150cca Mon Sep 17 00:00:00 2001 From: counterweight Date: Sun, 21 Dec 2025 17:57:06 +0100 Subject: [PATCH] Extract weekend detection logic to shared utility - Created isWeekend() function in utils/date.ts - Replaced inline weekend detection logic in availability page - More reusable and testable --- frontend/app/admin/availability/page.tsx | 6 +++--- frontend/app/utils/date.ts | 8 ++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/frontend/app/admin/availability/page.tsx b/frontend/app/admin/availability/page.tsx index be544b6..8137cfc 100644 --- a/frontend/app/admin/availability/page.tsx +++ b/frontend/app/admin/availability/page.tsx @@ -8,7 +8,7 @@ import { Header } from "../../components/Header"; import { useRequireAuth } from "../../hooks/useRequireAuth"; import { components } from "../../generated/api"; import constants from "../../../../shared/constants.json"; -import { formatDate, formatDisplayDate, getDateRange, formatTimeString } from "../../utils/date"; +import { formatDate, formatDisplayDate, getDateRange, formatTimeString, isWeekend } from "../../utils/date"; const { slotDurationMinutes, maxAdvanceDays, minAdvanceDays } = constants.booking; @@ -260,7 +260,7 @@ export default function AdminAvailabilityPage() { const hasSlots = slots.length > 0; const isSource = copySource === dateStr; const isTarget = copyTargets.has(dateStr); - const isWeekend = date.getDay() === 0 || date.getDay() === 6; + const isWeekendDate = isWeekend(date); return (
{ if (copySource) { diff --git a/frontend/app/utils/date.ts b/frontend/app/utils/date.ts index 3868ab9..dd8f84c 100644 --- a/frontend/app/utils/date.ts +++ b/frontend/app/utils/date.ts @@ -74,3 +74,11 @@ export function getDateRange(minAdvanceDays: number, maxAdvanceDays: number): Da return dates; } +/** + * Check if a date is a weekend (Saturday or Sunday). + */ +export function isWeekend(date: Date): boolean { + const day = date.getDay(); + return day === 0 || day === 6; +} +