123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package eu.kanade.presentation.library.components
- import androidx.compose.foundation.layout.PaddingValues
- import androidx.compose.foundation.layout.fillMaxSize
- import androidx.compose.foundation.lazy.grid.items
- import androidx.compose.runtime.Composable
- import androidx.compose.ui.Modifier
- import androidx.compose.ui.util.fastAny
- import eu.kanade.domain.library.model.LibraryManga
- import eu.kanade.domain.manga.model.MangaCover
- import eu.kanade.presentation.components.MangaCompactGridItem
- import eu.kanade.tachiyomi.ui.library.LibraryItem
- @Composable
- fun LibraryCompactGrid(
- items: List<LibraryItem>,
- showTitle: Boolean,
- columns: Int,
- contentPadding: PaddingValues,
- selection: List<LibraryManga>,
- onClick: (LibraryManga) -> Unit,
- onLongClick: (LibraryManga) -> Unit,
- onClickContinueReading: ((LibraryManga) -> Unit)?,
- searchQuery: String?,
- onGlobalSearchClicked: () -> Unit,
- ) {
- LazyLibraryGrid(
- modifier = Modifier.fillMaxSize(),
- columns = columns,
- contentPadding = contentPadding,
- ) {
- globalSearchItem(searchQuery, onGlobalSearchClicked)
- items(
- items = items,
- contentType = { "library_compact_grid_item" },
- ) { libraryItem ->
- val manga = libraryItem.libraryManga.manga
- MangaCompactGridItem(
- isSelected = selection.fastAny { it.id == libraryItem.libraryManga.id },
- title = manga.title.takeIf { showTitle },
- coverData = MangaCover(
- mangaId = manga.id,
- sourceId = manga.source,
- isMangaFavorite = manga.favorite,
- url = manga.thumbnailUrl,
- lastModified = manga.coverLastModified,
- ),
- coverBadgeStart = {
- DownloadsBadge(count = libraryItem.downloadCount.toInt())
- UnreadBadge(count = libraryItem.unreadCount.toInt())
- },
- coverBadgeEnd = {
- LanguageBadge(
- isLocal = libraryItem.isLocal,
- sourceLanguage = libraryItem.sourceLanguage,
- )
- },
- onLongClick = { onLongClick(libraryItem.libraryManga) },
- onClick = { onClick(libraryItem.libraryManga) },
- onClickContinueReading = if (onClickContinueReading != null) {
- { onClickContinueReading(libraryItem.libraryManga) }
- } else {
- null
- },
- )
- }
- }
- }
|