"use client"; import { Plus, Clock, Calendar } from "lucide-react"; import { Modal } from "@/components/ui"; import { resolveEventColor } from "@/lib/calendar-event-colors"; import { format } from "date-fns"; import { ru } from "date-fns/locale"; interface ViewDayEventsModalProps { isOpen: boolean; onClose: () => void; date: Date | null; events: any[]; onEventClick: (event: any) => void; onCreateEvent: () => void; } export function ViewDayEventsModal({ isOpen, onClose, date, events, onEventClick, onCreateEvent, }: ViewDayEventsModalProps) { if (!isOpen || !date) return null; const formattedDate = format(date, "d MMMM yyyy, EEEE", { locale: ru }); const capitalizedDate = formattedDate.charAt(0).toUpperCase() + formattedDate.slice(1); const dayEvents = events.filter(event => { const eventStart = new Date(event.start); const eventEnd = new Date(event.end); const selectedDay = new Date(date); // Сбрасываем время для корректного сравнения дат eventStart.setHours(0, 0, 0, 0); eventEnd.setHours(0, 0, 0, 0); selectedDay.setHours(0, 0, 0, 0); // Проверяем, попадает ли selectedDay в диапазон [eventStart, eventEnd] return selectedDay >= eventStart && selectedDay <= eventEnd; }); // Сортируем события по времени начала const sortedEvents = [...dayEvents].sort((a, b) => { return new Date(a.start).getTime() - new Date(b.start).getTime(); }); const formatTime = (dateStr: string) => { const date = new Date(dateStr); return format(date, "HH:mm", { locale: ru }); }; return ( Создать событие } >

{sortedEvents.length === 0 ? "Нет событий" : `${sortedEvents.length} ${sortedEvents.length === 1 ? "событие" : "событий"}`}

{sortedEvents.length === 0 ? (

Нет событий в этот день

Создайте новое событие

) : (
{sortedEvents.map((event) => ( ))}
)}
); }