Fix incorrect visible room ranges: correctly remove duplicates and ignore appearance changes while filtering

This commit is contained in:
Stefan Ceriu
2023-02-20 17:14:02 +02:00
committed by Stefan Ceriu
parent 9fe81d977c
commit cc6201ed31
3 changed files with 6 additions and 1 deletions
@@ -179,8 +179,8 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
} }
visibleItemRangeObservationToken = visibleItemRangePublisher visibleItemRangeObservationToken = visibleItemRangePublisher
.removeDuplicates(by: { $0.isScrolling == $1.isScrolling && $0.range == $1.range })
.throttle(for: 0.5, scheduler: DispatchQueue.main, latest: true) .throttle(for: 0.5, scheduler: DispatchQueue.main, latest: true)
.removeDuplicates(by: { $0.isScrolling == $1.isScrolling && $0.range == $1.range })
.sink { [weak self] value in .sink { [weak self] value in
guard let self else { return } guard let self else { return }
@@ -54,9 +54,13 @@ struct HomeScreen: View {
} }
} }
.onAppear { .onAppear {
// Ignore while filtering rooms
guard context.searchQuery.isEmpty else { return }
visibleItemIdentifiers.insert(room.id) visibleItemIdentifiers.insert(room.id)
} }
.onDisappear { .onDisappear {
// Ignore while filtering rooms
guard context.searchQuery.isEmpty else { return }
visibleItemIdentifiers.remove(room.id) visibleItemIdentifiers.remove(room.id)
} }
} }
+1
View File
@@ -0,0 +1 @@
Fix incorrect visible room ranges: correctly remove duplicates and ignore appearance changes while filtering