srollToNewMessage method
void
srollToNewMessage(
{ - 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();
}