BrowseLatestScreen.kt 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package eu.kanade.presentation.browse
  2. import androidx.compose.material3.SnackbarHostState
  3. import androidx.compose.runtime.Composable
  4. import androidx.compose.runtime.getValue
  5. import androidx.compose.runtime.remember
  6. import androidx.compose.ui.platform.LocalUriHandler
  7. import androidx.paging.compose.collectAsLazyPagingItems
  8. import eu.kanade.domain.manga.model.Manga
  9. import eu.kanade.presentation.browse.components.BrowseLatestToolbar
  10. import eu.kanade.presentation.components.Scaffold
  11. import eu.kanade.tachiyomi.source.LocalSource
  12. import eu.kanade.tachiyomi.ui.browse.source.browse.BrowseSourcePresenter
  13. import eu.kanade.tachiyomi.ui.more.MoreController
  14. @Composable
  15. fun BrowseLatestScreen(
  16. presenter: BrowseSourcePresenter,
  17. navigateUp: () -> Unit,
  18. onMangaClick: (Manga) -> Unit,
  19. onMangaLongClick: (Manga) -> Unit,
  20. onWebViewClick: () -> Unit,
  21. ) {
  22. val columns by presenter.getColumnsPreferenceForCurrentOrientation()
  23. val uriHandler = LocalUriHandler.current
  24. val onHelpClick = {
  25. uriHandler.openUri(LocalSource.HELP_URL)
  26. }
  27. Scaffold(
  28. topBar = { scrollBehavior ->
  29. BrowseLatestToolbar(
  30. navigateUp = navigateUp,
  31. source = presenter.source!!,
  32. displayMode = presenter.displayMode,
  33. onDisplayModeChange = { presenter.displayMode = it },
  34. onHelpClick = onHelpClick,
  35. onWebViewClick = onWebViewClick,
  36. scrollBehavior = scrollBehavior,
  37. )
  38. },
  39. ) { paddingValues ->
  40. BrowseSourceContent(
  41. source = presenter.source,
  42. mangaList = presenter.getMangaList().collectAsLazyPagingItems(),
  43. getMangaState = { presenter.getManga(it) },
  44. columns = columns,
  45. displayMode = presenter.displayMode,
  46. snackbarHostState = remember { SnackbarHostState() },
  47. contentPadding = paddingValues,
  48. onWebViewClick = onWebViewClick,
  49. onHelpClick = { uriHandler.openUri(MoreController.URL_HELP) },
  50. onLocalSourceHelpClick = onHelpClick,
  51. onMangaClick = onMangaClick,
  52. onMangaLongClick = onMangaLongClick,
  53. )
  54. }
  55. }