Skip to content

Instantly share code, notes, and snippets.

Last active June 23, 2022 13:13
What would you like to do?
// A state model for Login screen
data class LoginState(
val isLoading: Boolean = false,
val loggedInUser: User? = null
val error: String? = null
class LoginViewModel(...) : ViewModel() {
// Individual state flows
private val isLoading = MutableStateFlow(false)
private val loggedInUser = MutableStateFlow<User?>(null)
private val error = MutableStateFlow<String?>(null)
// Combining these states to form a LoginState
val state: StateFlow<LoginState> = combine(isLoading, loggedInUser, error) { loading, user, errorMessage ->
LoginState(loading, user, errorMessage)
}.stateIn(viewModelScope, WhileObserved(), initialValue = LoginState())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment