groupMessagesByDate<T> static method

Map<String, List<T>> groupMessagesByDate<T>(
  1. List<T> messages,
  2. DateTime getDateTime(
    1. T
    )
)

Groups messages by date sections

Implementation

static Map<String, List<T>> groupMessagesByDate<T>(
  List<T> messages,
  DateTime Function(T) getDateTime,
) {
  final Map<String, List<T>> grouped = {};

  for (final message in messages) {
    final date = getDateTime(message);
    final sectionHeader = date.toChatSectionHeader;

    if (!grouped.containsKey(sectionHeader)) {
      grouped[sectionHeader] = [];
    }
    grouped[sectionHeader]!.add(message);
  }

  return grouped;
}