diff --git a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/addpeople/AddPeopleView.kt b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/addpeople/AddPeopleView.kt index 0a7309a2b0..e03d36363d 100644 --- a/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/addpeople/AddPeopleView.kt +++ b/features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/addpeople/AddPeopleView.kt @@ -13,6 +13,9 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.getValue +import androidx.compose.runtime.rememberUpdatedState import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.PreviewParameter @@ -36,6 +39,13 @@ fun AddPeopleView( modifier: Modifier = Modifier, invitePeopleView: @Composable () -> Unit, ) { + val currentOnFinish by rememberUpdatedState(onFinish) + LaunchedEffect(state.sendInvitesAction, state.createRoomFromDmAction) { + if (state.sendInvitesAction.isSuccess() || state.createRoomFromDmAction.isSuccess()) { + currentOnFinish() + } + } + HeaderFooterPage( modifier = modifier, contentPadding = PaddingValues(0.dp), @@ -47,7 +57,6 @@ fun AddPeopleView( text = stringResource(CommonStrings.action_finish), onClick = { state.eventSink(InvitePeopleEvents.SendInvites) - onFinish() }, enabled = state.canInvite, modifier = Modifier