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
This commit is contained in:
counterweight 2025-12-21 17:57:06 +01:00
parent 1497a81cd5
commit 64eeaadd28
Signed by: counterweight
GPG key ID: 883EDBAA726BD96C
2 changed files with 11 additions and 3 deletions

View file

@ -8,7 +8,7 @@ import { Header } from "../../components/Header";
import { useRequireAuth } from "../../hooks/useRequireAuth"; import { useRequireAuth } from "../../hooks/useRequireAuth";
import { components } from "../../generated/api"; import { components } from "../../generated/api";
import constants from "../../../../shared/constants.json"; 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; const { slotDurationMinutes, maxAdvanceDays, minAdvanceDays } = constants.booking;
@ -260,7 +260,7 @@ export default function AdminAvailabilityPage() {
const hasSlots = slots.length > 0; const hasSlots = slots.length > 0;
const isSource = copySource === dateStr; const isSource = copySource === dateStr;
const isTarget = copyTargets.has(dateStr); const isTarget = copyTargets.has(dateStr);
const isWeekend = date.getDay() === 0 || date.getDay() === 6; const isWeekendDate = isWeekend(date);
return ( return (
<div <div
@ -271,7 +271,7 @@ export default function AdminAvailabilityPage() {
...(hasSlots ? styles.dayCardActive : {}), ...(hasSlots ? styles.dayCardActive : {}),
...(isSource ? styles.dayCardSource : {}), ...(isSource ? styles.dayCardSource : {}),
...(isTarget ? styles.dayCardTarget : {}), ...(isTarget ? styles.dayCardTarget : {}),
...(isWeekend ? styles.dayCardWeekend : {}), ...(isWeekendDate ? styles.dayCardWeekend : {}),
}} }}
onClick={() => { onClick={() => {
if (copySource) { if (copySource) {

View file

@ -74,3 +74,11 @@ export function getDateRange(minAdvanceDays: number, maxAdvanceDays: number): Da
return dates; 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;
}