diff --git a/apps/ios/Shared/Views/Chat/ReverseList.swift b/apps/ios/Shared/Views/Chat/ReverseList.swift index 75dc7115a9..9a2ca4f19c 100644 --- a/apps/ios/Shared/Views/Chat/ReverseList.swift +++ b/apps/ios/Shared/Views/Chat/ReverseList.swift @@ -172,13 +172,15 @@ struct ReverseList: UIV } var updateInProgress = false + var itemId: Item.ID? func update(items: [Item]) { if updateInProgress { return } - let itemsAdded = items.count - itemCount - if itemsAdded > 0, itemCount != 0 { + if let itemId, + let i = items.firstIndex(where: { $0.id == itemId }), + i > 0 { updateInProgress = true - _update(items: Array(items[itemsAdded...]), animated: false) { + _update(items: Array(items[i...]), animated: false) { DispatchQueue.main.async { self._update(items: items, animated: true) { self.updateInProgress = false @@ -188,6 +190,7 @@ struct ReverseList: UIV } else { _update(items: items, animated: false) } + itemId = items.first?.id itemCount = items.count }