Se7eN
09/19/2020, 10:03 AMvar selectedUser: User? by remember { mutableStateOf(null) }
when(currentScreen) {
is Routing.Root.Main -> {
MainScreen(onChatClick = { user ->
selectedUser = user
// change current screen
}
}
is Routing.Root.Conversation -> {
when (val user = selectedUser) {
null -> throw IllegalStateException("selectedUser is null")
else -> ConversationScreen(user)
}
}
}
I don't like the way I'm handling selectedUser hereHalil Ozercan
09/19/2020, 10:48 AMselectedUser shouldn't be a state in here. Your actual state is currentScreen . Maybe selectedUser should be a non-nullable constructor value in Routing.Root.Conversation class.Halil Ozercan
09/19/2020, 10:49 AMonChatClick function to modify currentScreen , instead of selected user because we are moving the user logic from one state into another one.Se7eN
09/19/2020, 10:49 AMJohn O'Reilly
09/19/2020, 12:09 PMSe7eN
09/19/2020, 12:31 PM