diff --git a/apps/ios/Shared/Views/Chat/ReverseList.swift b/apps/ios/Shared/Views/Chat/ReverseList.swift index 2d27f80815..64784951ff 100644 --- a/apps/ios/Shared/Views/Chat/ReverseList.swift +++ b/apps/ios/Shared/Views/Chat/ReverseList.swift @@ -54,6 +54,7 @@ struct ReverseList: UIViewControllerRepresentable { private var itemCount: Int = 0 private let updateFloatingButtons = PassthroughSubject() private var bag = Set() + private var renderedItems = Array() init(representer: ReverseList) { self.representer = representer @@ -218,21 +219,20 @@ struct ReverseList: UIViewControllerRepresentable { func update(items: [ChatItem], gap: ChatGap?) { var snapshot = NSDiffableDataSourceSnapshot() - let cItems: [ChatItem] if let gap = gap { var itemsCopy = items let blanks = (0..: UIViewControllerRepresentable { animated: false ) } - itemCount = cItems.count + itemCount = renderedItems.count updateFloatingButtons.send() } @@ -251,17 +251,17 @@ struct ReverseList: UIViewControllerRepresentable { func getListState() -> ListState? { if let visibleRows = tableView.indexPathsForVisibleRows, - visibleRows.last?.item ?? 0 < representer.items.count { + visibleRows.last?.item ?? 0 < renderedItems.count { let scrollOffset: Double = tableView.contentOffset.y + InvertedTableView.inset let topItemDate: Date? = if let lastVisible = visibleRows.last(where: { isVisible(indexPath: $0) }) { - representer.items[lastVisible.item].meta.itemTs + renderedItems[lastVisible.item].meta.itemTs } else { nil } let bottomItemId: ChatItem.ID? = if let firstVisible = visibleRows.first(where: { isVisible(indexPath: $0) }) { - representer.items[firstVisible.item].id + renderedItems[firstVisible.item].id } else { nil }