Simplify SpaceFilterButton and add content description
This commit is contained in:
parent
915aca9c1d
commit
49b58f249b
1 changed files with 25 additions and 34 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue