updateThreadInfo method

void updateThreadInfo(
  1. String parentId,
  2. List<Message> messages
)

Update threads with updated information about messages.

Implementation

void updateThreadInfo(String parentId, List<Message> messages) {
  final newThreads = Map<String, List<Message>>.from(threads);

  if (newThreads.containsKey(parentId)) {
    newThreads[parentId] = [
      ...messages,
      ...newThreads[parentId]!.where(
        (newMessage) => !messages.any((m) => m.id == newMessage.id),
      ),
    ]..sort(_sortByCreatedAt);
  } else {
    newThreads[parentId] = messages;
  }

  _threads = newThreads;
}