From 0602150cd80f0afdaee1b075d36034a79fc8667e Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Sun, 26 Mar 2023 11:10:26 -0400 Subject: [PATCH] Only runs scroll to top once. --- .../amethyst/ui/navigation/AppNavigation.kt | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt index 685a5a2a0..d154ac4f2 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppNavigation.kt @@ -33,22 +33,36 @@ fun AppNavigation( NavHost(navController, startDestination = Route.Home.route) { Route.Search.let { route -> composable(route.route, route.arguments, content = { + val scrollToTop = it.arguments?.getBoolean("scrollToTop") ?: false + SearchScreen( accountViewModel = accountViewModel, 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 -> composable(route.route, route.arguments, content = { + val scrollToTop = it.arguments?.getBoolean("scrollToTop") ?: false + HomeScreen( accountViewModel = accountViewModel, navController = navController, 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") + } }) }