diff --git a/apps/ios/Shared/Views/Chat/ChatView.swift b/apps/ios/Shared/Views/Chat/ChatView.swift index 9f064cbc31..5b75e2e76b 100644 --- a/apps/ios/Shared/Views/Chat/ChatView.swift +++ b/apps/ios/Shared/Views/Chat/ChatView.swift @@ -466,10 +466,10 @@ struct ChatView: View { private var bag = Set() - typealias ListState = ( - topItemDate: Date?, - bottomItemId: ChatItem.ID? - ) + struct ListState: Equatable { + let topItemDate: Date? + let bottomItemId: ChatItem.ID? + } private struct ViewUpdate: Equatable { let unreadBelow: Int @@ -504,6 +504,7 @@ struct ChatView: View { // Date visibility listState + .removeDuplicates() .map { _ in self.setDate(visibility: true) } // Hide the date after 1 second of no scrolling .debounce(for: 1, scheduler: DispatchQueue.main) diff --git a/apps/ios/Shared/Views/Chat/ReverseList.swift b/apps/ios/Shared/Views/Chat/ReverseList.swift index 3f5c970b88..d2efe88860 100644 --- a/apps/ios/Shared/Views/Chat/ReverseList.swift +++ b/apps/ios/Shared/Views/Chat/ReverseList.swift @@ -208,7 +208,7 @@ struct ReverseList: UIViewControllerRepresentable { visibleRows.last?.item ?? 0 < representer.items.count { let fbm = ChatView.FloatingButtonModel.shared fbm.scrollOffset.send(tableView.contentOffset.y + InvertedTableView.inset) - fbm.listState.send(( + fbm.listState.send(.init( topItemDate: visibleRows .last { isVisible(indexPath: $0) } .map { representer.items[$0.item] }?