Wire up search page to discover items

This commit is contained in:
Damontecres 2025-12-23 18:38:22 -05:00
parent d814d533ab
commit ddda10f3a1
No known key found for this signature in database
2 changed files with 28 additions and 8 deletions

View file

@ -10,23 +10,26 @@ import com.github.damontecres.wholphin.services.SeerrSearchResult
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.UseSerializers
import org.jellyfin.sdk.model.api.BaseItemKind
import org.jellyfin.sdk.model.serializer.UUIDSerializer
import org.jellyfin.sdk.model.serializer.toUUIDOrNull
import java.util.UUID
@Serializable
enum class SeerrItemType {
enum class SeerrItemType(
val baseItemKind: BaseItemKind?,
) {
@SerialName("movie")
MOVIE,
MOVIE(BaseItemKind.MOVIE),
@SerialName("tv")
TV,
TV(BaseItemKind.SERIES),
@SerialName("person")
PERSON,
PERSON(BaseItemKind.PERSON),
@SerialName("unknown")
UNKNOWN,
UNKNOWN(null),
;
companion object {

View file

@ -55,6 +55,7 @@ import com.github.damontecres.wholphin.ui.data.RowColumn
import com.github.damontecres.wholphin.ui.ifElse
import com.github.damontecres.wholphin.ui.isNotNullOrBlank
import com.github.damontecres.wholphin.ui.launchIO
import com.github.damontecres.wholphin.ui.nav.Destination
import com.github.damontecres.wholphin.ui.rememberPosition
import com.github.damontecres.wholphin.ui.setValueOnMain
import com.github.damontecres.wholphin.ui.tryRequestFocus
@ -324,8 +325,20 @@ fun SearchPage(
rowIndex = SEERR_ROW,
position = position,
focusRequester = focusRequester,
onClickItem = { index, item ->
// TODO seerr
onClickItem = { _, _ ->
// no-op
},
onClickDiscover = { _, item ->
val dest =
if (item.jellyfinItemId != null && item.type.baseItemKind != null) {
Destination.MediaItem(
itemId = item.jellyfinItemId,
type = item.type.baseItemKind,
)
} else {
Destination.DiscoveredItem(item)
}
viewModel.navigationManager.navigateTo(dest)
},
onClickPosition = { position = it },
modifier = Modifier.fillMaxWidth(),
@ -342,6 +355,7 @@ fun LazyListScope.searchResultRow(
onClickItem: (Int, BaseItem) -> Unit,
onClickPosition: (RowColumn) -> Unit,
modifier: Modifier = Modifier,
onClickDiscover: ((Int, DiscoverItem) -> Unit)? = null,
cardContent: @Composable (
index: Int,
item: BaseItem?,
@ -419,7 +433,10 @@ fun LazyListScope.searchResultRow(
ItemRow(
title = title,
items = r.items,
onClickItem = { index, item -> },
onClickItem = { index, item ->
onClickPosition.invoke(RowColumn(rowIndex, index))
onClickDiscover?.invoke(index, item)
},
onLongClickItem = { _, _ -> },
modifier = modifier,
cardContent = { index: Int, item: DiscoverItem?, mod: Modifier, onClick: () -> Unit, onLongClick: () -> Unit ->