diff --git a/app/src/main/java/chat/revolt/components/screens/chat/drawer/channel/ChannelList.kt b/app/src/main/java/chat/revolt/components/screens/chat/drawer/channel/ChannelList.kt index 7f071cd8..c276b3dd 100644 --- a/app/src/main/java/chat/revolt/components/screens/chat/drawer/channel/ChannelList.kt +++ b/app/src/main/java/chat/revolt/components/screens/chat/drawer/channel/ChannelList.kt @@ -67,7 +67,11 @@ fun RowScope.ChannelList( ) } ?: false, onClick = { - navController.navigate("channel/${channel.id}") + navController.navigate("channel/${channel.id}") { + navController.graph.startDestinationRoute?.let { route -> + popUpTo(route) + } + } coroutineScope.launch { drawerState.focusCenter() } }, onLongClick = { @@ -109,8 +113,8 @@ fun RowScope.ChannelList( onClick = { coroutineScope.launch { drawerState.focusCenter() } navController.navigate("channel/${ch.id}") { - popUpTo("home") { - inclusive = true + navController.graph.startDestinationRoute?.let { route -> + popUpTo(route) } } }, diff --git a/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt b/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt index 0efdead4..4b2172e0 100644 --- a/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt +++ b/app/src/main/java/chat/revolt/screens/chat/ChatRouterScreen.kt @@ -64,8 +64,8 @@ class ChatRouterViewModel : ViewModel() { if (serverId == "home") { navController.navigate("home") { - popUpTo("home") { - inclusive = true + navController.graph.startDestinationRoute?.let { route -> + popUpTo(route) } } return @@ -73,8 +73,8 @@ class ChatRouterViewModel : ViewModel() { val channelId = RevoltAPI.serverCache[serverId]?.channels?.firstOrNull() navController.navigate("channel/$channelId") { - popUpTo("home") { - inclusive = true + navController.graph.startDestinationRoute?.let { route -> + popUpTo(route) } } }