Only runs scroll to top once.

This commit is contained in:
Vitor Pamplona
2023-03-26 11:10:26 -04:00
parent c7327c8b91
commit 0602150cd8

View File

@@ -33,22 +33,36 @@ fun AppNavigation(
NavHost(navController, startDestination = Route.Home.route) { NavHost(navController, startDestination = Route.Home.route) {
Route.Search.let { route -> Route.Search.let { route ->
composable(route.route, route.arguments, content = { composable(route.route, route.arguments, content = {
val scrollToTop = it.arguments?.getBoolean("scrollToTop") ?: false
SearchScreen( SearchScreen(
accountViewModel = accountViewModel, accountViewModel = accountViewModel,
navController = navController, navController = navController,
scrollToTop = it.arguments?.getBoolean("scrollToTop") ?: false scrollToTop = scrollToTop
) )
// Avoids running scroll to top when back button is pressed
if (scrollToTop) {
it.arguments?.remove("scrollToTop")
}
}) })
} }
Route.Home.let { route -> Route.Home.let { route ->
composable(route.route, route.arguments, content = { composable(route.route, route.arguments, content = {
val scrollToTop = it.arguments?.getBoolean("scrollToTop") ?: false
HomeScreen( HomeScreen(
accountViewModel = accountViewModel, accountViewModel = accountViewModel,
navController = navController, navController = navController,
pagerState = homePagerState, pagerState = homePagerState,
scrollToTop = it.arguments?.getBoolean("scrollToTop") ?: false scrollToTop = scrollToTop
) )
// Avoids running scroll to top when back button is pressed
if (scrollToTop) {
it.arguments?.remove("scrollToTop")
}
}) })
} }