package eu.kanade.presentation.browse.components import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.items import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.State import androidx.compose.runtime.getValue import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp import eu.kanade.presentation.library.components.CommonMangaItemDefaults import eu.kanade.presentation.library.components.MangaComfortableGridItem import tachiyomi.domain.manga.model.Manga import tachiyomi.domain.manga.model.MangaCover import tachiyomi.domain.manga.model.asMangaCover import tachiyomi.presentation.core.components.material.padding @Composable fun GlobalSearchCardRow( titles: List, getManga: @Composable (Manga) -> State, onClick: (Manga) -> Unit, onLongClick: (Manga) -> Unit, ) { LazyRow( contentPadding = PaddingValues(MaterialTheme.padding.small), horizontalArrangement = Arrangement.spacedBy(MaterialTheme.padding.tiny), ) { items(titles) { val title by getManga(it) GlobalSearchCard( title = title.title, cover = title.asMangaCover(), isFavorite = title.favorite, onClick = { onClick(title) }, onLongClick = { onLongClick(title) }, ) } } } @Composable private fun GlobalSearchCard( title: String, cover: MangaCover, isFavorite: Boolean, onClick: () -> Unit, onLongClick: () -> Unit, ) { Box(modifier = Modifier.width(96.dp)) { MangaComfortableGridItem( title = title, coverData = cover, coverBadgeStart = { InLibraryBadge(enabled = isFavorite) }, coverAlpha = if (isFavorite) CommonMangaItemDefaults.BrowseFavoriteCoverAlpha else 1f, onClick = onClick, onLongClick = onLongClick, ) } }