Colton Idle
05/17/2021, 12:36 AMColton Idle
05/17/2021, 12:36 AMsetContent {
val state = viewModel.state.observeAsState().value!!
Column() {
TextField(
value = state.email,
onValueChange = viewModel::emailUpdated,
label = { Text("Email") },
)
TextField(
value = state.password,
onValueChange = { viewModel.passwordUpdated(it) },
label = { Text("Pass") },
)
}
}
ViewModel:
class LoginViewModel : ViewModel() {
private val _state = MutableLiveData(LoginViewState())
val state: LiveData<LoginViewState> = _state
fun emailUpdated(update: String) {
_state.value = _state.value!!.copy(email = update)
}
fun passwordUpdated(update: String) {
_state.value = _state.value!!.copy(password = update)
}
}
data class LoginViewState(val email: String = "", val password: String = "")
Carson Holzheimer
05/17/2021, 5:39 AMColton Idle
05/17/2021, 11:17 AMCarson Holzheimer
05/17/2021, 12:00 PM