quick look modal shows title logo when available

This commit is contained in:
2026-04-07 02:58:01 +03:00
parent 1a84b348ad
commit ca4c311593
+24 -2
View File
@@ -5,8 +5,8 @@ import { Play, Info, Star, Clock, X } from '../../lib/icons'
import { useQuickLookStore } from '../../stores/quick-look-store'
import { useItemDetails } from '../../hooks/use-jellyfin'
import { useTmdbMovie, useTmdbTvShow } from '../../hooks/use-tmdb'
import { getBestImage, getStoredServerUrl } from '../../api/jellyfin'
import { getTmdbImageUrl } from '../../api/tmdb'
import { getBestImage, getStoredServerUrl, getImageUrl } from '../../api/jellyfin'
import { getTmdbImageUrl, pickTmdbLogo } from '../../api/tmdb'
import { formatRuntime } from '../../lib/format'
import WatchlistButton from './WatchlistButton'
import RequestButton from '../request/RequestButton'
@@ -49,6 +49,17 @@ export default function QuickLookModal() {
const fallbackBackdrop = tmdbData?.backdrop_path ? getTmdbImageUrl(tmdbData.backdrop_path, 'w1280') : null
const heroImg = backdrop || fallbackBackdrop
const logoFromJf =
item?.Id && item.ImageTags?.Logo
? getImageUrl(serverUrl, item.Id, 'Logo', 600, item.ImageTags.Logo)
: null
const logoFromTmdb = pickTmdbLogo(
isSeries
? tmdbTv.data?.images?.logos
: tmdbMovie.data?.images?.logos,
)
const logoUrl = logoFromJf || (logoFromTmdb ? getTmdbImageUrl(logoFromTmdb.file_path, 'w500') : null)
const overview = item.Overview || tmdbData?.overview || ''
const year = item.ProductionYear || (tmdbData?.release_date || tmdbData?.first_air_date || '').slice(0, 4)
const runtime = item.RunTimeTicks ? formatRuntime(item.RunTimeTicks) : null
@@ -95,9 +106,20 @@ export default function QuickLookModal() {
)}
<div className="p-6 -mt-8 relative">
{logoUrl ? (
<div className="mb-2 flex justify-start">
<img
src={logoUrl}
alt={item.Name || ''}
className="block h-auto max-h-14 md:max-h-16 max-w-[380px] w-auto drop-shadow-[0_4px_24px_rgba(0,0,0,0.7)]"
onError={e => { (e.target as HTMLImageElement).style.display = 'none' }}
/>
</div>
) : (
<h2 className="text-[22px] font-display font-bold tracking-tight text-text-1 mb-2 leading-tight">
{item.Name}
</h2>
)}
<div className="flex items-center gap-2 text-[11.5px] text-text-3 mb-4 flex-wrap font-medium">
{year && <span className="tabular-nums">{year}</span>}
{year && (runtime || community) && <Dot />}