fetchDayEvents method

Future<List<CalendarMonthEvent>> fetchDayEvents({
  1. String? templateId,
  2. required DateTime displayDate,
  3. required bool parentElementsOnly,
})

Fetches the calendar events for a specific day.

Implementation

Future<List<CalendarMonthEvent>> fetchDayEvents({
  String? templateId,
  required DateTime displayDate,
  required bool parentElementsOnly,
}) async {
  final allMonthEvents = await fetchMonthEvents(
    templateId: templateId,
    displayDate: displayDate,
    parentElementsOnly: parentElementsOnly,
  );

  final startOfDay = DateUtils.dateOnly(displayDate);
  final endOfDay = startOfDay.add(const Duration(days: 1));

  return allMonthEvents.where((event) {
    final overlaps = event.startDate.isBefore(endOfDay) &&
        event.endDate.isAfter(startOfDay);

    final startsOnDay = DateUtils.isSameDay(event.startDate, displayDate);

    return startsOnDay || overlaps;
  }).toList();
}