mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 10:33:45 +00:00
Allow removing individual search breadcrumbs
Each recent search now has a trailing close button to remove it from the history. The view action is logged without its payload so removed queries don't end up in the logs.
This commit is contained in:
@@ -147,6 +147,8 @@ class SearchScreenViewModel: SearchScreenViewModelType, SearchScreenViewModelPro
|
||||
case .selectMessage(let roomID, let eventID):
|
||||
recordBreadcrumb(.room(roomID: roomID))
|
||||
actionsSubject.send(.presentRoom(roomID: roomID, eventID: eventID))
|
||||
case .removeBreadcrumb(let breadcrumb):
|
||||
removeBreadcrumb(breadcrumb)
|
||||
case .reachedTop:
|
||||
if state.bindings.searchMode == .rooms {
|
||||
updateVisibleRange(edge: .top)
|
||||
@@ -222,6 +224,14 @@ class SearchScreenViewModel: SearchScreenViewModelType, SearchScreenViewModelPro
|
||||
userSettings.searchBreadcrumbs = Array(breadcrumbs.prefix(Self.maximumBreadcrumbCount))
|
||||
}
|
||||
|
||||
private func removeBreadcrumb(_ breadcrumb: SearchScreenBreadcrumb) {
|
||||
let storedBreadcrumb: SearchBreadcrumb = switch breadcrumb {
|
||||
case .query(let query): .query(query)
|
||||
case .room(let room): .room(roomID: room.id)
|
||||
}
|
||||
userSettings.searchBreadcrumbs.removeAll { $0 == storedBreadcrumb }
|
||||
}
|
||||
|
||||
private func setActiveTabLoading(_ isLoading: Bool) {
|
||||
switch state.bindings.searchMode {
|
||||
case .rooms:
|
||||
|
||||
Reference in New Issue
Block a user