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, showTitle: Boolean, columns: Int, contentPadding: PaddingValues, selection: List, 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 }, ) } } }