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,
) { ) {
when (spaceFiltersState) { if (spaceFiltersState == SpaceFiltersState.Disabled) return
SpaceFiltersState.Disabled -> Unit
is SpaceFiltersState.Unselected -> { fun onClick() {
IconButton( when (spaceFiltersState) {
onClick = { spaceFiltersState.eventSink(SpaceFiltersEvent.Unselected.ShowFilters) } is SpaceFiltersState.Unselected -> spaceFiltersState.eventSink(SpaceFiltersEvent.Unselected.ShowFilters)
) { is SpaceFiltersState.Selected -> spaceFiltersState.eventSink(SpaceFiltersEvent.Selected.ClearSelection)
Icon( else -> Unit
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,
contentColor = ElementTheme.colors.iconOnSolidPrimary,
),
onClick = { spaceFiltersState.eventSink(SpaceFiltersEvent.Selected.ClearSelection) },
) {
Icon(
imageVector = CompoundIcons.Filter(),
contentDescription = null,
)
}
} }
} }
val isSelected = spaceFiltersState is SpaceFiltersState.Selected
IconButton(
onClick = ::onClick,
colors = if (isSelected) {
IconButtonDefaults.iconButtonColors(
containerColor = ElementTheme.colors.bgAccentRest,
contentColor = ElementTheme.colors.iconOnSolidPrimary,
)
} else {
IconButtonDefaults.iconButtonColors()
},
) {
Icon(
imageVector = CompoundIcons.Filter(),
contentDescription = stringResource(R.string.screen_roomlist_your_spaces),
)
}
} }
@Composable @Composable