import { useRef } from 'react' import { Link } from 'react-router-dom' import { motion } from 'framer-motion' import { Film, Play, Layers, Star } from 'lucide-react' import { imageURL } from '../api/client' import type { Media } from '../types' export const MediaCard = ({ media, progress, count, rating, linkTo, onClick, }: { media: Media progress?: number count?: number rating?: number linkTo?: string onClick?: () => void }) => { const ref = useRef(null) const href = linkTo ?? `/media/${media.id}` const card = ( {/* Poster Wrapper */}
{media.poster_url ? ( {media.title} ) : (
No Poster
)} {/* Episode count badge */} {count !== undefined && count > 1 && ( {count} 集 )} {/* Rating Badge */} {(rating || (media as any).rating) && ( {(rating || (media as any).rating).toFixed(1)} )} {/* Premium Hover Overlay */}
立即观影

{media.overview || "暂无简介内容"}

{/* Progress Bar overlay */} {progress !== undefined && progress > 0 && progress < 1 && (
)}
{/* Media Metadata Info */}

{media.title}

{media.year > 0 ? media.year : "未知年份"} {media.video_codec && ( {media.video_codec} )}
) if (onClick) { return ( ) } return ( {card} ) }