srollToNewMessage method

void srollToNewMessage({
  1. bool scrollToEnd = true,
})

Implementation

void srollToNewMessage({bool scrollToEnd = true}) {
  if (hasMoreNewerMessages) {
    _messageList.clear();
    showNewMessage = true;
    newMessages.clear();
    clearRoutePendingNewMessages();
    _initFetch(scrollToBottom: true);
    return;
  }
  if (newMessages.isNotEmpty) {
    final insertedMessages = newMessages
        .where(
          (pending) => !_messageList.any(
            (message) => _isSameNIMMessage(
              message.nimMessage,
              pending.nimMessage,
            ),
          ),
        )
        .toList();
    _messageList.insertAll(0, insertedMessages);
    newMessages.clear();
    checkAutoTranslateMessages(insertedMessages);
  }
  clearRoutePendingNewMessages();
  showNewMessage = true;
  if (scrollToEnd) {
    _scrollToEnd?.call();
  }
  notifyListeners();
}