Skip to content

Instantly share code, notes, and snippets.

@volodymyr-sch
Last active October 18, 2021 15:17
Show Gist options
  • Select an option

  • Save volodymyr-sch/7a1d6689e095badf3d18264edd0bfb48 to your computer and use it in GitHub Desktop.

Select an option

Save volodymyr-sch/7a1d6689e095badf3d18264edd0bfb48 to your computer and use it in GitHub Desktop.
@Immutable
sealed class MainScreenUiEvent : UiEvent {
data class ShowData(val items: List<MainScreenItem>) : MainScreenUiEvent()
data class OnChangeDialogState(val show: Boolean) : MainScreenUiEvent()
data class AddNewItem(val text: String) : MainScreenUiEvent()
data class OnItemCheckedChanged(val index: Int, val isChecked: Boolean) : MainScreenUiEvent()
object DismissDialog : MainScreenUiEvent()
}
@Immutable
data class MainScreenState(
val isLoading: Boolean,
val data: List<MainScreenItem>,
val isShowAddDialog: Boolean,
) : UiState {
companion object {
fun initial() = MainScreenState(
isLoading = true,
data = emptyList(),
isShowAddDialog = false
)
}
override fun toString(): String {
return "isLoading: $isLoading, data.size: ${data.size}, isShowAddDialog: $isShowAddDialog"
}
}
sealed class MainScreenItem {
object MainScreenAddButtonItem : MainScreenItem()
data class MainScreenTodoItem(
val isChecked: Boolean,
val text: String,
) : MainScreenItem()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment