Add back navigation to clear space filter selection
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
package io.element.android.features.home.impl
|
||||
|
||||
import io.element.android.features.home.impl.roomlist.RoomListState
|
||||
import io.element.android.features.home.impl.spacefilters.SpaceFiltersState
|
||||
import io.element.android.features.home.impl.spaces.HomeSpacesState
|
||||
import io.element.android.features.logout.api.direct.DirectLogoutState
|
||||
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage
|
||||
@@ -31,6 +32,7 @@ data class HomeState(
|
||||
val directLogoutState: DirectLogoutState,
|
||||
val eventSink: (HomeEvent) -> Unit,
|
||||
) {
|
||||
val isBackHandlerEnabled = currentHomeNavigationBarItem != HomeNavigationBarItem.Chats || roomListState.spaceFiltersState is SpaceFiltersState.Selected
|
||||
val displayActions = currentHomeNavigationBarItem == HomeNavigationBarItem.Chats
|
||||
val displayRoomListFilters = currentHomeNavigationBarItem == HomeNavigationBarItem.Chats && roomListState.displayFilters
|
||||
val showNavigationBar = homeSpacesState.canCreateSpaces || homeSpacesState.spaceRooms.isNotEmpty()
|
||||
|
||||
@@ -50,6 +50,8 @@ import io.element.android.features.home.impl.roomlist.RoomListDeclineInviteMenu
|
||||
import io.element.android.features.home.impl.roomlist.RoomListEvent
|
||||
import io.element.android.features.home.impl.roomlist.RoomListState
|
||||
import io.element.android.features.home.impl.search.RoomListSearchView
|
||||
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.SpaceFiltersView
|
||||
import io.element.android.features.home.impl.spaces.HomeSpacesView
|
||||
import io.element.android.libraries.androidutils.throttler.FirstThrottler
|
||||
@@ -154,10 +156,15 @@ private fun HomeScaffold(
|
||||
val snackbarHostState = rememberSnackbarHostState(snackbarMessage = state.snackbarMessage)
|
||||
val roomListState: RoomListState = state.roomListState
|
||||
|
||||
BackHandler(
|
||||
enabled = state.currentHomeNavigationBarItem != HomeNavigationBarItem.Chats,
|
||||
) {
|
||||
state.eventSink(HomeEvent.SelectHomeNavigationBarItem(HomeNavigationBarItem.Chats))
|
||||
BackHandler(enabled = state.isBackHandlerEnabled) {
|
||||
if (state.currentHomeNavigationBarItem != HomeNavigationBarItem.Chats) {
|
||||
state.eventSink(HomeEvent.SelectHomeNavigationBarItem(HomeNavigationBarItem.Chats))
|
||||
} else {
|
||||
val spaceFiltersState = state.roomListState.spaceFiltersState
|
||||
if (spaceFiltersState is SpaceFiltersState.Selected) {
|
||||
spaceFiltersState.eventSink(SpaceFiltersEvent.Selected.ClearSelection)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val hazeState = rememberHazeState()
|
||||
|
||||
Reference in New Issue
Block a user