Simplify SpaceFilterButton and add content description

This commit is contained in:
ganfra 2026-02-03 10:24:38 +01:00
parent 915aca9c1d
commit 49b58f249b

View file

@ -41,12 +41,12 @@ import io.element.android.appconfig.RoomListConfig
import io.element.android.compound.theme.ElementTheme import io.element.android.compound.theme.ElementTheme
import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.compound.tokens.generated.CompoundIcons
import io.element.android.features.home.impl.HomeNavigationBarItem import io.element.android.features.home.impl.HomeNavigationBarItem
import io.element.android.features.home.impl.R
import io.element.android.features.home.impl.filters.RoomListFiltersState import io.element.android.features.home.impl.filters.RoomListFiltersState
import io.element.android.features.home.impl.filters.RoomListFiltersView import io.element.android.features.home.impl.filters.RoomListFiltersView
import io.element.android.features.home.impl.filters.aRoomListFiltersState import io.element.android.features.home.impl.filters.aRoomListFiltersState
import io.element.android.features.home.impl.spacefilters.SpaceFiltersEvent import io.element.android.features.home.impl.spacefilters.SpaceFiltersEvent
import io.element.android.features.home.impl.spacefilters.SpaceFiltersState import io.element.android.features.home.impl.spacefilters.SpaceFiltersState
import io.element.android.features.home.impl.spacefilters.aDisabledSpaceFiltersState
import io.element.android.features.home.impl.spacefilters.aSelectedSpaceFiltersState import io.element.android.features.home.impl.spacefilters.aSelectedSpaceFiltersState
import io.element.android.features.home.impl.spacefilters.anUnselectedSpaceFiltersState import io.element.android.features.home.impl.spacefilters.anUnselectedSpaceFiltersState
import io.element.android.libraries.designsystem.atomic.atoms.RedIndicatorAtom import io.element.android.libraries.designsystem.atomic.atoms.RedIndicatorAtom
@ -249,41 +249,32 @@ private fun SpacesMenuItems(
private fun SpaceFilterButton( private fun SpaceFilterButton(
spaceFiltersState: SpaceFiltersState, spaceFiltersState: SpaceFiltersState,
) { ) {
if (spaceFiltersState == SpaceFiltersState.Disabled) return
fun onClick() {
when (spaceFiltersState) { when (spaceFiltersState) {
SpaceFiltersState.Disabled -> Unit is SpaceFiltersState.Unselected -> spaceFiltersState.eventSink(SpaceFiltersEvent.Unselected.ShowFilters)
is SpaceFiltersState.Unselected -> { is SpaceFiltersState.Selected -> spaceFiltersState.eventSink(SpaceFiltersEvent.Selected.ClearSelection)
else -> Unit
}
}
val isSelected = spaceFiltersState is SpaceFiltersState.Selected
IconButton( IconButton(
onClick = { spaceFiltersState.eventSink(SpaceFiltersEvent.Unselected.ShowFilters) } onClick = ::onClick,
) { colors = if (isSelected) {
Icon( IconButtonDefaults.iconButtonColors(
imageVector = CompoundIcons.Filter(),
contentDescription = null,
)
}
}
is SpaceFiltersState.Selecting -> {
IconButton(onClick = {}) {
Icon(
imageVector = CompoundIcons.Filter(),
contentDescription = null,
)
}
}
is SpaceFiltersState.Selected -> {
IconButton(
colors = IconButtonDefaults.iconButtonColors(
containerColor = ElementTheme.colors.bgAccentRest, containerColor = ElementTheme.colors.bgAccentRest,
contentColor = ElementTheme.colors.iconOnSolidPrimary, contentColor = ElementTheme.colors.iconOnSolidPrimary,
), )
onClick = { spaceFiltersState.eventSink(SpaceFiltersEvent.Selected.ClearSelection) }, } else {
IconButtonDefaults.iconButtonColors()
},
) { ) {
Icon( Icon(
imageVector = CompoundIcons.Filter(), imageVector = CompoundIcons.Filter(),
contentDescription = null, contentDescription = stringResource(R.string.screen_roomlist_your_spaces),
) )
} }
}
}
} }
@Composable @Composable