Last active
October 18, 2021 15:17
-
-
Save volodymyr-sch/7a1d6689e095badf3d18264edd0bfb48 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @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