SourcesState.kt 871 B

123456789101112131415161718192021222324252627
  1. package eu.kanade.presentation.browse
  2. import androidx.compose.runtime.Stable
  3. import androidx.compose.runtime.derivedStateOf
  4. import androidx.compose.runtime.getValue
  5. import androidx.compose.runtime.mutableStateOf
  6. import androidx.compose.runtime.setValue
  7. import eu.kanade.tachiyomi.ui.browse.source.SourcesPresenter
  8. @Stable
  9. interface SourcesState {
  10. var dialog: SourcesPresenter.Dialog?
  11. val isLoading: Boolean
  12. val items: List<SourceUiModel>
  13. val isEmpty: Boolean
  14. }
  15. fun SourcesState(): SourcesState {
  16. return SourcesStateImpl()
  17. }
  18. class SourcesStateImpl : SourcesState {
  19. override var dialog: SourcesPresenter.Dialog? by mutableStateOf(null)
  20. override var isLoading: Boolean by mutableStateOf(true)
  21. override var items: List<SourceUiModel> by mutableStateOf(emptyList())
  22. override val isEmpty: Boolean by derivedStateOf { items.isEmpty() }
  23. }