Clear selection when selected space is removed from filters

This commit is contained in:
ganfra 2026-02-04 16:12:52 +01:00
parent 98be9e9a88
commit fb2fb824af
2 changed files with 47 additions and 7 deletions

View file

@ -9,8 +9,8 @@ package io.element.android.features.home.impl.spacefilters
import androidx.compose.foundation.text.input.rememberTextFieldState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
@ -86,12 +86,15 @@ class SpaceFiltersPresenter(
)
}
is SelectionMode.Selected -> {
// Keep in sync with the available filters if rooms are added/removed
val selectedFilter by remember {
derivedStateOf {
availableFilters
.firstOrNull { it.spaceRoom.roomId == mode.filter.spaceRoom.roomId }
?: mode.filter
var selectedFilter by remember { mutableStateOf(mode.filter) }
// Makes sure the selectedFilter stays in sync with the available filters
LaunchedEffect(availableFilters) {
val upToDateFilter = availableFilters
.firstOrNull { it.spaceRoom.roomId == mode.filter.spaceRoom.roomId }
if (upToDateFilter == null) {
selectionMode = SelectionMode.Unselected
} else {
selectedFilter = upToDateFilter
}
}
SpaceFiltersState.Selected(