fix: google messed up my back handler

Signed-off-by: Infi <wingit@geist.ga>
This commit is contained in:
Infi 2023-06-18 17:40:15 +02:00
parent c2c72ecfe1
commit e9f4259da5
1 changed files with 20 additions and 3 deletions

View File

@ -200,9 +200,15 @@ fun ChatRouterScreen(topNav: NavController, viewModel: ChatRouterViewModel = hil
var userContextSheetTarget by remember { mutableStateOf("") } var userContextSheetTarget by remember { mutableStateOf("") }
var userContextSheetServer by remember { mutableStateOf<String?>(null) } var userContextSheetServer by remember { mutableStateOf<String?>(null) }
BackHandler(enabled = drawerState.isClosed) { val drawerBackHandler = remember {
scope.launch { {
drawerState.open() scope.launch {
if (drawerState.isOpen) {
drawerState.close()
} else {
drawerState.open()
}
}
} }
} }
@ -488,10 +494,17 @@ fun ChatRouterScreen(topNav: NavController, viewModel: ChatRouterViewModel = hil
Column(Modifier.fillMaxSize()) { Column(Modifier.fillMaxSize()) {
NavHost(navController = navController, startDestination = "home") { NavHost(navController = navController, startDestination = "home") {
composable("home") { composable("home") {
BackHandler {
drawerBackHandler()
}
HomeScreen(navController = topNav) HomeScreen(navController = topNav)
} }
composable("channel/{channelId}") { backStackEntry -> composable("channel/{channelId}") { backStackEntry ->
BackHandler {
drawerBackHandler()
}
val channelId = backStackEntry.arguments?.getString("channelId") val channelId = backStackEntry.arguments?.getString("channelId")
if (channelId != null) { if (channelId != null) {
ChannelScreen( ChannelScreen(
@ -514,6 +527,10 @@ fun ChatRouterScreen(topNav: NavController, viewModel: ChatRouterViewModel = hil
} }
composable("no_current_channel") { composable("no_current_channel") {
BackHandler {
drawerBackHandler()
}
NoCurrentChannelScreen() NoCurrentChannelScreen()
} }