ExtensionsState.kt 901 B

123456789101112131415161718192021222324252627
  1. package eu.kanade.presentation.browse
  2. import androidx.compose.runtime.derivedStateOf
  3. import androidx.compose.runtime.getValue
  4. import androidx.compose.runtime.mutableStateOf
  5. import androidx.compose.runtime.setValue
  6. import eu.kanade.tachiyomi.ui.browse.extension.ExtensionUiModel
  7. interface ExtensionsState {
  8. val isLoading: Boolean
  9. val isRefreshing: Boolean
  10. val items: List<ExtensionUiModel>
  11. val updates: Int
  12. val isEmpty: Boolean
  13. }
  14. fun ExtensionState(): ExtensionsState {
  15. return ExtensionsStateImpl()
  16. }
  17. class ExtensionsStateImpl : ExtensionsState {
  18. override var isLoading: Boolean by mutableStateOf(true)
  19. override var isRefreshing: Boolean by mutableStateOf(false)
  20. override var items: List<ExtensionUiModel> by mutableStateOf(emptyList())
  21. override var updates: Int by mutableStateOf(0)
  22. override val isEmpty: Boolean by derivedStateOf { items.isEmpty() }
  23. }