diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt index e497afca..d3c4693e 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/LobstersApp.kt @@ -122,7 +122,7 @@ fun LobstersApp( ) { NavHost( navController, - startDestination = Destinations.Hottest.getRoute(), + startDestination = Destinations.startDestination.getRoute(), modifier = Modifier.padding(top = 8.dp), ) { composable(Destinations.Hottest.getRoute()) { diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt index 14857741..1da832e0 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/decorations/ClawNavigationBar.kt @@ -19,6 +19,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.painter.Painter import androidx.navigation.NavController import dev.msfjarvis.claw.android.ui.AnimationDuration +import dev.msfjarvis.claw.android.ui.navigation.Destinations @Composable fun ClawNavigationBar( @@ -53,7 +54,11 @@ fun ClawNavigationBar( selected = selectedIndex == index, onClick = { selectedIndex = index - navController.navigate(navItem.route) + if (navController.currentDestination?.route == navItem.route) return@NavigationBarItem + navController.popBackStack(navController.graph.startDestinationRoute!!, false) + if (navItem.route != Destinations.startDestination.getRoute()) { + navController.navigate(navItem.route) + } } ) } diff --git a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/navigation/Destinations.kt b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/navigation/Destinations.kt index d422a429..e1f6b309 100644 --- a/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/navigation/Destinations.kt +++ b/android/src/main/kotlin/dev/msfjarvis/claw/android/ui/navigation/Destinations.kt @@ -12,4 +12,9 @@ sealed class Destinations(internal val route: String) { object Comments : Destinations("comments/%s") { fun getRoute(postId: String) = route.format(postId) } + + companion object { + val startDestination + get() = Hottest + } }