mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
Room list searching tweaks (#1800)
* Prevent the room list from flashing previous rooms when searching * Remove reset diff chunking now that the whole list is limited * Bump the Rust SDK to v1.1.19 and fix breaking API changes
This commit is contained in:
@@ -88,7 +88,17 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
|
||||
.map(\.bindings.searchQuery)
|
||||
.removeDuplicates()
|
||||
.sink { [weak self] searchQuery in
|
||||
self?.roomSummaryProvider?.updateFilterPattern(searchQuery)
|
||||
guard let self else { return }
|
||||
updateFilter(isSearchFieldFocused: state.bindings.isSearchFieldFocused, searchQuery: searchQuery)
|
||||
}
|
||||
.store(in: &cancellables)
|
||||
|
||||
context.$viewState
|
||||
.map(\.bindings.isSearchFieldFocused)
|
||||
.removeDuplicates()
|
||||
.sink { [weak self] isSearchFieldFocused in
|
||||
guard let self else { return }
|
||||
updateFilter(isSearchFieldFocused: isSearchFieldFocused, searchQuery: state.bindings.searchQuery)
|
||||
}
|
||||
.store(in: &cancellables)
|
||||
|
||||
@@ -142,6 +152,16 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
|
||||
|
||||
// MARK: - Private
|
||||
|
||||
private func updateFilter(isSearchFieldFocused: Bool, searchQuery: String) {
|
||||
if !isSearchFieldFocused {
|
||||
roomSummaryProvider?.setFilter(.all)
|
||||
} else if searchQuery.isEmpty {
|
||||
roomSummaryProvider?.setFilter(.none)
|
||||
} else {
|
||||
roomSummaryProvider?.setFilter(.normalizedMatchRoomName(searchQuery))
|
||||
}
|
||||
}
|
||||
|
||||
private func setupRoomSummaryProviderSubscriptions() {
|
||||
guard let roomSummaryProvider, let inviteSummaryProvider else {
|
||||
MXLog.error("Room summary provider unavailable")
|
||||
|
||||
Reference in New Issue
Block a user