type discover components

This commit is contained in:
2026-04-26 07:48:34 +03:00
parent c746ce1b7c
commit 9641dfc1a9
8 changed files with 52 additions and 53 deletions
+5 -4
View File
@@ -5,6 +5,7 @@ import { useLibraryByTmdbId } from '../../hooks/use-jellyfin'
import { usePreferencesStore } from '../../stores/preferences-store'
import { mapTmdbToJf } from '../../lib/tmdb-mapping'
import { filterToMissing } from '../../pages/discover/helpers'
import type { TmdbMovie } from '../../api/tmdb'
interface CanonicalList {
id: string
@@ -12,7 +13,7 @@ interface CanonicalList {
subtitle: string
params: Record<string, string>
/** Optional client-side filter applied on top of TMDB results. */
extra?: (m: { original_language?: string; vote_count?: number }) => boolean
extra?: (m: TmdbMovie) => boolean
}
/**
@@ -123,9 +124,9 @@ function CanonicalRow({ list }: { list: CanonicalList }) {
const lib = useLibraryByTmdbId()
const hideAdult = usePreferencesStore(s => s.hideAdult)
const items = useMemo(() => {
let raw = (movies.data?.results || []).map(m => ({ ...m, media_type: 'movie' }))
if (list.extra) raw = raw.filter(list.extra as any)
return mapTmdbToJf(filterToMissing(raw, lib.data, hideAdult, m => !!(m as any).adult), lib.data)
let raw = (movies.data?.results || []).map(m => ({ ...m, media_type: 'movie' as const }))
if (list.extra) raw = raw.filter(list.extra)
return mapTmdbToJf(filterToMissing(raw, lib.data, hideAdult, m => !!m.adult), lib.data)
}, [movies.data, lib.data, hideAdult, list])
if (items.length === 0) return null
return (