'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 { ServiceCategory } from '../service-categories'; import { BookingProvider, useBooking } from './booking.provider'; import LocationSelector from './location-selector'; import ServiceSelector from './service-selector'; import TimeSlots from './time-slots'; const 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="rounded-md border" {...(isLoadingTimeSlots && { className: 'rounded-md border opacity-50 pointer-events-none', })} /> ); }; const BookingContainer = ({ category }: { category: ServiceCategory }) => { return (
); }; export default BookingContainer;