Making nav(route) threaded operation
This commit is contained in:
@@ -5,6 +5,7 @@ import androidx.compose.runtime.LaunchedEffect
|
|||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import androidx.navigation.compose.NavHost
|
import androidx.navigation.compose.NavHost
|
||||||
@@ -57,11 +58,15 @@ fun AppNavigation(
|
|||||||
) {
|
) {
|
||||||
var actionableNextPage by remember { mutableStateOf<String?>(nextPage) }
|
var actionableNextPage by remember { mutableStateOf<String?>(nextPage) }
|
||||||
|
|
||||||
|
val scope = rememberCoroutineScope()
|
||||||
val nav = remember {
|
val nav = remember {
|
||||||
{ route: String ->
|
{ route: String ->
|
||||||
if (getRouteWithArguments(navController) != route) {
|
scope.launch {
|
||||||
navController.navigate(route)
|
if (getRouteWithArguments(navController) != route) {
|
||||||
|
navController.navigate(route)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Unit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-3
@@ -33,14 +33,18 @@ fun LoadRedirectScreen(eventId: String?, navController: NavController) {
|
|||||||
if (eventId == null) return
|
if (eventId == null) return
|
||||||
|
|
||||||
var noteBase by remember { mutableStateOf<Note?>(null) }
|
var noteBase by remember { mutableStateOf<Note?>(null) }
|
||||||
|
val scope = rememberCoroutineScope()
|
||||||
|
|
||||||
val nav = remember(navController) {
|
val nav = remember(navController) {
|
||||||
{ route: String ->
|
{ route: String ->
|
||||||
navController.navigate(route) {
|
scope.launch {
|
||||||
popUpTo(Route.Event.route) {
|
navController.navigate(route) {
|
||||||
inclusive = true
|
popUpTo(Route.Event.route) {
|
||||||
|
inclusive = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Unit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -69,9 +69,12 @@ fun MainScreen(accountViewModel: AccountViewModel, accountStateViewModel: Accoun
|
|||||||
|
|
||||||
val nav = remember(navController) {
|
val nav = remember(navController) {
|
||||||
{ route: String ->
|
{ route: String ->
|
||||||
if (getRouteWithArguments(navController) != route) {
|
scope.launch {
|
||||||
navController.navigate(route)
|
if (getRouteWithArguments(navController) != route) {
|
||||||
|
navController.navigate(route)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Unit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user