mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 06:55:59 +00:00
Ignore incompatible room filter activations
Signed-off-by: Sergey Ospanov <33452977+sergeyospanov@users.noreply.github.com>
This commit is contained in:
@@ -109,10 +109,8 @@ struct RoomListFiltersState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mutating func activateFilter(_ filter: RoomListFilter) {
|
mutating func activateFilter(_ filter: RoomListFilter) {
|
||||||
filter.incompatibleFilters.forEach { incompatibleFilter in
|
if filter.incompatibleFilters.contains(where: { activeFilters.contains($0) }) {
|
||||||
if activeFilters.contains(incompatibleFilter) {
|
return
|
||||||
fatalError("[RoomListFiltersState] adding mutually exclusive filters is not allowed")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// We always want the most recently enabled filter to be at the bottom of the others.
|
// We always want the most recently enabled filter to be at the bottom of the others.
|
||||||
|
|||||||
@@ -62,6 +62,14 @@ final class RoomListFiltersStateTests {
|
|||||||
#expect(state.availableFilters == [.favourites])
|
#expect(state.availableFilters == [.favourites])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
func ignoresIncompatibleFilter() {
|
||||||
|
state.activateFilter(.people)
|
||||||
|
state.activateFilter(.invites)
|
||||||
|
|
||||||
|
#expect(state.activeFilters == [.people])
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
func clearFilters() {
|
func clearFilters() {
|
||||||
state.activateFilter(.people)
|
state.activateFilter(.people)
|
||||||
|
|||||||
Reference in New Issue
Block a user