import { Cloud, Layers } from 'lucide-react' import { Link } from 'react-router-dom' import type { Media } from '../types' import { isStrmMedia, mediaVersionLabel, mediaVersionsOf } from '../utils/mediaVersion' type MediaVersionSwitcherProps = { media: Media /** 详情页:用 Link 跳转播放;播放页:回调切换 */ mode?: 'detail' | 'player' onSelect?: (version: Media) => void className?: string } export function MediaVersionSwitcher({ media, mode = 'detail', onSelect, className = '', }: MediaVersionSwitcherProps) { const versions = mediaVersionsOf(media) if (versions.length <= 1) return null const dark = mode === 'player' return (
版本({versions.length})
{versions.map((version) => { const active = version.id === media.id const isStrm = isStrmMedia(version) const label = mediaVersionLabel(version) const btnClass = dark ? active ? 'border-white/50 bg-white/20 text-white shadow-sm ring-1 ring-white/20' : 'border-white/15 bg-white/5 text-white/80 hover:bg-white/15 hover:text-white' : active ? 'border-brand-500/40 bg-brand-50 text-[#b07d35] font-bold shadow-sm' : 'border-gray-200 bg-white text-ink-100 hover:border-brand-500/30 hover:bg-brand-50/40' const content = ( {isStrm && ( )} {label} {!dark && active ? · 当前 : null} ) if (mode === 'player') { return ( ) } return ( {content} ) })}
) }