Making nav(route) threaded operation

pull/498/head
Vitor Pamplona 2023-07-10 14:13:27 -04:00
rodzic 7ea5be0152
commit 25520e7d2a
3 zmienionych plików z 19 dodań i 7 usunięć

Wyświetl plik

@ -5,6 +5,7 @@ import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
@ -57,11 +58,15 @@ fun AppNavigation(
) {
var actionableNextPage by remember { mutableStateOf<String?>(nextPage) }
val scope = rememberCoroutineScope()
val nav = remember {
{ route: String ->
if (getRouteWithArguments(navController) != route) {
navController.navigate(route)
scope.launch {
if (getRouteWithArguments(navController) != route) {
navController.navigate(route)
}
}
Unit
}
}

Wyświetl plik

@ -33,14 +33,18 @@ fun LoadRedirectScreen(eventId: String?, navController: NavController) {
if (eventId == null) return
var noteBase by remember { mutableStateOf<Note?>(null) }
val scope = rememberCoroutineScope()
val nav = remember(navController) {
{ route: String ->
navController.navigate(route) {
popUpTo(Route.Event.route) {
inclusive = true
scope.launch {
navController.navigate(route) {
popUpTo(Route.Event.route) {
inclusive = true
}
}
}
Unit
}
}

Wyświetl plik

@ -69,9 +69,12 @@ fun MainScreen(accountViewModel: AccountViewModel, accountStateViewModel: Accoun
val nav = remember(navController) {
{ route: String ->
if (getRouteWithArguments(navController) != route) {
navController.navigate(route)
scope.launch {
if (getRouteWithArguments(navController) != route) {
navController.navigate(route)
}
}
Unit
}
}