import { useMemo } from 'react' import { Pencil, Trash2 } from 'lucide-react' import type { Library, PlayProfile } from '../types' type ProfileCardProps = { profile: PlayProfile libraries: Library[] active: boolean onSelect: () => void onEdit: () => void onDelete: () => void } export function ProfileCard({ profile, libraries, active, onSelect, onEdit, onDelete, }: ProfileCardProps) { const libNames = useMemo(() => { if (!profile.allowed_library_ids?.length) return '全部' const idx = new Map(libraries.map((library) => [library.id, library.name])) return profile.allowed_library_ids.map((id) => idx.get(id) ?? id).join(', ') }, [profile, libraries]) return (
{profile.name[0]?.toUpperCase()}
{profile.name} {profile.is_default && ( 默认 )} {active && ( 当前使用 )} {profile.allow_adult && ( 成人内容 )} {profile.require_pin && ( 🔒 PIN )}
{profile.content_rating_limit && 分级: {profile.content_rating_limit}} 媒体库: {libNames}
观看时长 {Math.round(profile.total_watch_time / 3600)} 小时 {profile.last_active_at && ` · 最近活跃 ${new Date(profile.last_active_at).toLocaleDateString()}`}
) }