From 7cde151006d41deeb2b895a35c8e058edcf44b2c Mon Sep 17 00:00:00 2001 From: Igor Escodro Date: Sat, 18 Jan 2025 17:27:32 -0500 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=B7=20Improve=20navigation=20flow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Additional functions called to improve the navigation. The improvements are: - Avoid navigating to the same place if it's already on top - Save and restore state for the TopLevel destinations --- .../kotlin/com/escodro/navigation/compose/Navigation.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libraries/navigation/src/commonMain/kotlin/com/escodro/navigation/compose/Navigation.kt b/libraries/navigation/src/commonMain/kotlin/com/escodro/navigation/compose/Navigation.kt index 01bc8b94..d10b0a51 100644 --- a/libraries/navigation/src/commonMain/kotlin/com/escodro/navigation/compose/Navigation.kt +++ b/libraries/navigation/src/commonMain/kotlin/com/escodro/navigation/compose/Navigation.kt @@ -49,13 +49,18 @@ private fun NavigationLoader( is TopLevel -> { navHostController.navigate(destination) { - popUpTo(navHostController.graph.findStartDestination().id) + popUpTo(navHostController.graph.findStartDestination().id) { + saveState = true + } launchSingleTop = true + restoreState = true } } else -> { - navHostController.navigate(destination) + navHostController.navigate(destination) { + launchSingleTop = true + } } } }