From 4b3c6342b1dd472cf00b7b5899bde3b01e61eb78 Mon Sep 17 00:00:00 2001 From: PJ Date: Sun, 26 Apr 2026 22:19:26 +0700 Subject: [PATCH] fix(folio-app): branch start destination on initial session Read repository.session.value at first composition and pick Route.Home or Route.Login as the NavHost startDestination. Avoids the one-frame Home flash on cold start with no persisted session. --- .../folio/app/shared/src/commonMain/kotlin/app/folio/App.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/folio/app/shared/src/commonMain/kotlin/app/folio/App.kt b/examples/folio/app/shared/src/commonMain/kotlin/app/folio/App.kt index afb8328..6ab54a9 100644 --- a/examples/folio/app/shared/src/commonMain/kotlin/app/folio/App.kt +++ b/examples/folio/app/shared/src/commonMain/kotlin/app/folio/App.kt @@ -70,6 +70,9 @@ private fun AppContent() { LaunchedEffect(navController) { graph.navigator.attach(navController) } + val initialSession = remember { graph.repository.session.value } + val startDestination: Route = if (initialSession != null) Route.Home else Route.Login + val session by graph.repository.session.collectAsState() val currentEntry by navController.currentBackStackEntryAsState() val onLogin = currentEntry?.destination?.hasRoute(Route.Login::class) == true @@ -84,7 +87,7 @@ private fun AppContent() { NavHost( navController = navController, - startDestination = Route.Home, + startDestination = startDestination, modifier = Modifier.fillMaxSize(), ) { composable { LoginRoute() }