Skip to content

Instantly share code, notes, and snippets.

@Laimiux
Created March 27, 2018 05:53
Show Gist options
  • Save Laimiux/fd99a009b5645877afb6553af91b4d37 to your computer and use it in GitHub Desktop.
Save Laimiux/fd99a009b5645877afb6553af91b4d37 to your computer and use it in GitHub Desktop.
class CommentFormViewModel {
// Let's create a view state from the data provided.
fun createViewState(
data: CommentFormData,
onTextChanged: (TextChangedEvent) -> Unit,
onSubmitSelected: (SubmitCommentEvent) -> Unit
): CommentFormViewState{
val isSubmitting = data.submitRequest?.let { it.isLoading} ?: false
return CommentFormViewState(
textEntered = data.comment,
isSubmitButtonEnabled = data.isCommentIsValid && !isSubmitting,
onTextEntered = { text ->
onTextChanged(TextChangedEvent(text))
},
onSubmitClicked = {
// We assume that view will disable submit button when
// isSubmitButtonEnabled = false
onSubmitClicked(SubmitCommentEvent(data.comment))
}
)}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment