eventsToSyncProvider top-level property

dynamic eventsToSyncProvider
final

Implementation

final eventsToSyncProvider = FutureProvider.autoDispose((ref) async {
  // fetch all from all spaces
  final allEventList = await ref.watch(allEventListProvider(null).future);
  final upcomingAndOngoing = allEventList.where((event) {
    final eventType = getEventType(event);
    return eventType == EventFilters.upcoming ||
        eventType == EventFilters.ongoing;
  });
  final List<EventAndRsvp> toSync = [];

  for (final event in upcomingAndOngoing) {
    final eventId = event.eventId().toString();
    final myRsvpStatus = await ref.watch(myRsvpStatusProvider(eventId).future);
    if (myRsvpStatus == RsvpStatusTag.No) {
      // we sync all that aren’t denied yet
      final event = await ref.watch(
        calendarEventProvider(eventId).future,
      ); // ensure we are listening to updates of the events themselves
      toSync.add((event: event, rsvp: myRsvpStatus));
    }
  }
  return toSync;
});