MigrateMangaScreen.kt 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package eu.kanade.presentation.browse
  2. import androidx.compose.foundation.layout.PaddingValues
  3. import androidx.compose.foundation.layout.padding
  4. import androidx.compose.foundation.lazy.items
  5. import androidx.compose.runtime.Composable
  6. import androidx.compose.ui.Modifier
  7. import eu.kanade.presentation.components.AppBar
  8. import eu.kanade.presentation.components.EmptyScreen
  9. import eu.kanade.presentation.components.FastScrollLazyColumn
  10. import eu.kanade.presentation.manga.components.BaseMangaListItem
  11. import eu.kanade.tachiyomi.R
  12. import eu.kanade.tachiyomi.ui.browse.migration.manga.MigrateMangaState
  13. import tachiyomi.domain.manga.model.Manga
  14. import tachiyomi.presentation.core.components.material.Scaffold
  15. @Composable
  16. fun MigrateMangaScreen(
  17. navigateUp: () -> Unit,
  18. title: String?,
  19. state: MigrateMangaState,
  20. onClickItem: (Manga) -> Unit,
  21. onClickCover: (Manga) -> Unit,
  22. ) {
  23. Scaffold(
  24. topBar = { scrollBehavior ->
  25. AppBar(
  26. title = title,
  27. navigateUp = navigateUp,
  28. scrollBehavior = scrollBehavior,
  29. )
  30. },
  31. ) { contentPadding ->
  32. if (state.isEmpty) {
  33. EmptyScreen(
  34. textResource = R.string.empty_screen,
  35. modifier = Modifier.padding(contentPadding),
  36. )
  37. return@Scaffold
  38. }
  39. MigrateMangaContent(
  40. contentPadding = contentPadding,
  41. state = state,
  42. onClickItem = onClickItem,
  43. onClickCover = onClickCover,
  44. )
  45. }
  46. }
  47. @Composable
  48. private fun MigrateMangaContent(
  49. contentPadding: PaddingValues,
  50. state: MigrateMangaState,
  51. onClickItem: (Manga) -> Unit,
  52. onClickCover: (Manga) -> Unit,
  53. ) {
  54. FastScrollLazyColumn(
  55. contentPadding = contentPadding,
  56. ) {
  57. items(state.titles) { manga ->
  58. MigrateMangaItem(
  59. manga = manga,
  60. onClickItem = onClickItem,
  61. onClickCover = onClickCover,
  62. )
  63. }
  64. }
  65. }
  66. @Composable
  67. private fun MigrateMangaItem(
  68. modifier: Modifier = Modifier,
  69. manga: Manga,
  70. onClickItem: (Manga) -> Unit,
  71. onClickCover: (Manga) -> Unit,
  72. ) {
  73. BaseMangaListItem(
  74. modifier = modifier,
  75. manga = manga,
  76. onClickItem = { onClickItem(manga) },
  77. onClickCover = { onClickCover(manga) },
  78. )
  79. }