Fix double back navigation in roles and permissions screen (#2506)
* Fix double back navigation in roles and permissions screen This happened after saving changes and pressing the back navigation button in the top app bar. --------- Co-authored-by: Benoit Marty <benoit@matrix.org>
This commit is contained in:
parent
b07ec3e681
commit
db7e719c57
1 changed files with 8 additions and 9 deletions
|
|
@ -38,7 +38,6 @@ import androidx.compose.foundation.lazy.rememberLazyListState
|
||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.SideEffect
|
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.rememberUpdatedState
|
import androidx.compose.runtime.rememberUpdatedState
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
|
@ -50,6 +49,7 @@ import io.element.android.features.roomdetails.impl.R
|
||||||
import io.element.android.features.roomdetails.impl.members.aRoomMember
|
import io.element.android.features.roomdetails.impl.members.aRoomMember
|
||||||
import io.element.android.libraries.architecture.AsyncAction
|
import io.element.android.libraries.architecture.AsyncAction
|
||||||
import io.element.android.libraries.designsystem.components.ProgressDialog
|
import io.element.android.libraries.designsystem.components.ProgressDialog
|
||||||
|
import io.element.android.libraries.designsystem.components.async.AsyncActionView
|
||||||
import io.element.android.libraries.designsystem.components.async.AsyncIndicator
|
import io.element.android.libraries.designsystem.components.async.AsyncIndicator
|
||||||
import io.element.android.libraries.designsystem.components.async.AsyncIndicatorHost
|
import io.element.android.libraries.designsystem.components.async.AsyncIndicatorHost
|
||||||
import io.element.android.libraries.designsystem.components.async.rememberAsyncIndicatorState
|
import io.element.android.libraries.designsystem.components.async.rememberAsyncIndicatorState
|
||||||
|
|
@ -179,20 +179,19 @@ fun ChangeRolesView(
|
||||||
val asyncIndicatorState = rememberAsyncIndicatorState()
|
val asyncIndicatorState = rememberAsyncIndicatorState()
|
||||||
AsyncIndicatorHost(modifier = Modifier.statusBarsPadding(), asyncIndicatorState)
|
AsyncIndicatorHost(modifier = Modifier.statusBarsPadding(), asyncIndicatorState)
|
||||||
|
|
||||||
when (state.exitState) {
|
AsyncActionView(
|
||||||
is AsyncAction.Confirming -> {
|
async = state.exitState,
|
||||||
|
onSuccess = { updatedOnBackPressed() },
|
||||||
|
confirmationDialog = {
|
||||||
ConfirmationDialog(
|
ConfirmationDialog(
|
||||||
title = stringResource(CommonStrings.dialog_unsaved_changes_title),
|
title = stringResource(CommonStrings.dialog_unsaved_changes_title),
|
||||||
content = stringResource(CommonStrings.dialog_unsaved_changes_description_android),
|
content = stringResource(CommonStrings.dialog_unsaved_changes_description_android),
|
||||||
onSubmitClicked = { state.eventSink(ChangeRolesEvent.Exit) },
|
onSubmitClicked = { state.eventSink(ChangeRolesEvent.Exit) },
|
||||||
onDismiss = { state.eventSink(ChangeRolesEvent.CancelExit) }
|
onDismiss = { state.eventSink(ChangeRolesEvent.CancelExit) }
|
||||||
)
|
)
|
||||||
}
|
},
|
||||||
is AsyncAction.Success -> {
|
onErrorDismiss = { /* Cannot happen */ },
|
||||||
SideEffect { updatedOnBackPressed() }
|
)
|
||||||
}
|
|
||||||
else -> Unit
|
|
||||||
}
|
|
||||||
|
|
||||||
when (state.savingState) {
|
when (state.savingState) {
|
||||||
is AsyncAction.Confirming -> {
|
is AsyncAction.Confirming -> {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue