'use client'; import { isBefore, isSameDay } from 'date-fns'; import { uniq } from 'lodash'; import { Calendar } from '@kit/ui/shadcn/calendar'; import { Card } from '@kit/ui/shadcn/card'; import { cn } from '@kit/ui/utils'; import { useBooking } from './booking.provider'; export default function BookingCalendar() { const { selectedDate, setSelectedDate, isLoadingTimeSlots, timeSlots } = useBooking(); const availableDates = uniq(timeSlots?.map((timeSlot) => timeSlot.StartTime)); return ( { const today = new Date(); today.setHours(0, 0, 0, 0); return ( isBefore(date, today) || !availableDates.some((dateWithBooking) => isSameDay(date, dateWithBooking), ) ); }} className={cn('rounded-md border', { 'pointer-events-none rounded-md border opacity-50': isLoadingTimeSlots, })} /> ); }