setMessages method

void setMessages(
  1. List<Message> messages
)

Initializes the chat with a list of messages.

This method replaces all existing messages and re-groups them based on sender and timestamp. Messages are automatically sorted chronologically.

Implementation

void setMessages(List<Message> messages) {
  _messageGroups.clear();
  messages.sort((a, b) {
    final aDate = DateTime.tryParse(a.timestamp);
    final bDate = DateTime.tryParse(b.timestamp);

    if (aDate == null || bDate == null) {
      if (aDate == null && bDate == null) return 0;
      if (aDate == null) return 1;
      return -1;
    }

    final timeComparison = aDate.compareTo(bDate);

    if (timeComparison != 0) {
      return timeComparison;
    }

    if (_customSortCallback != null) {
      return _customSortCallback(a, b);
    }
    return 0;
  });
  for (final message in messages) {
    addMessage(message);
  }
}