import { useNavigate } from 'react-router-dom' import { motion, AnimatePresence } from 'framer-motion' import { Play, X } from '../../lib/icons' import type { BaseItemDto } from '../../api/types' import { getBestImage, getStoredServerUrl } from '../../api/jellyfin' import { formatRuntime } from '../../lib/format' interface Props { nextItem?: BaseItemDto | null visible: boolean countdownSeconds: number onSkip: () => void onDismiss: () => void } export default function UpNext({ nextItem, visible, countdownSeconds, onSkip, onDismiss, }: Props) { const navigate = useNavigate() const serverUrl = getStoredServerUrl() if (!nextItem) return null const thumb = getBestImage(serverUrl, nextItem, 'thumb', 480) const epLabel = nextItem.ParentIndexNumber != null && nextItem.IndexNumber != null ? `S${nextItem.ParentIndexNumber} · E${nextItem.IndexNumber}` : '' return ( {visible && (
{thumb && }

Up next in {countdownSeconds}s

{epLabel && (

{epLabel}

)}

{nextItem.Name}

{nextItem.Overview && (

{nextItem.Overview}

)}
{nextItem.RunTimeTicks && ( {formatRuntime(nextItem.RunTimeTicks)} )}
)} ) }