@@ -18,6 +18,7 @@ import androidx.compose.material3.adaptive.navigationsuite.NavigationSuiteScaffo
1818import androidx.compose.runtime.Composable
1919import androidx.compose.runtime.getValue
2020import androidx.compose.runtime.mutableStateOf
21+ import androidx.compose.runtime.rememberCoroutineScope
2122import androidx.compose.runtime.saveable.rememberSaveable
2223import androidx.compose.runtime.setValue
2324import androidx.compose.ui.graphics.vector.ImageVector
@@ -27,6 +28,7 @@ import com.surrus.peopleinspace.R
2728import com.surrus.peopleinspace.issposition.ISSPositionRoute
2829import com.surrus.peopleinspace.persondetails.PersonDetailsScreen
2930import com.surrus.peopleinspace.personlist.PersonListRoute
31+ import kotlinx.coroutines.launch
3032
3133enum class AppDestinations (
3234 @StringRes val label : Int ,
@@ -42,9 +44,12 @@ enum class AppDestinations(
4244fun PeopleInSpaceApp () {
4345 var currentDestination by rememberSaveable { mutableStateOf(AppDestinations .PERSON_LIST ) }
4446 val navigator = rememberListDetailPaneScaffoldNavigator<Assignment >()
47+ val scope = rememberCoroutineScope()
4548
4649 BackHandler (navigator.canNavigateBack()) {
47- navigator.navigateBack()
50+ scope.launch {
51+ navigator.navigateBack()
52+ }
4853 }
4954
5055 PeopleInSpaceTheme {
@@ -72,15 +77,19 @@ fun PeopleInSpaceApp() {
7277 value = navigator.scaffoldValue,
7378 listPane = {
7479 PersonListRoute { person ->
75- navigator.navigateTo(ListDetailPaneScaffoldRole .Detail , person)
80+ scope.launch {
81+ navigator.navigateTo(ListDetailPaneScaffoldRole .Detail , person)
82+ }
7683 }
7784 },
7885 detailPane = {
79- navigator.currentDestination?.content ?.let {
86+ navigator.currentDestination?.contentKey ?.let {
8087 PersonDetailsScreen (
8188 person = it,
8289 showBackButton = ! navigator.isListPaneVisible(),
83- navigator::navigateBack
90+ popBack = { // It's good practice to name lambda parameters
91+ scope.launch { navigator.navigateBack() }
92+ }
8493 )
8594 }
8695 }
0 commit comments