"use client"; import Image from "next/image"; import Link from "next/link"; import { Play, Heart, MessageCircle } from "lucide-react"; import { getPlatformConfig } from "@/lib/platforms"; import { formatCount } from "@/lib/format"; import { FavoriteButton } from "@/components/common/FavoriteButton"; import type { ContentItem } from "@/types/content"; import { useState } from "react"; interface ContentCardProps { item: ContentItem; } export function ContentCard({ item }: ContentCardProps) { const platform = getPlatformConfig(item.platform); const [imgError, setImgError] = useState(false); const playCount = formatCount(item.play_count); const likeCount = formatCount(item.like_count); const commentCount = formatCount(item.comment_count); return ( {/* Cover image */}
{item.cover_url && !imgError ? ( {item.title} setImgError(true)} /> ) : (
{platform?.icon || "📄"}
)}
{/* Content */}
{/* Platform tag */} {platform && ( {platform.icon} {platform.name} )} {/* Title */}

{item.title}

{/* Author */}
{item.author_avatar ? ( {item.author_name} { (e.target as HTMLImageElement).style.display = "none"; }} /> ) : (
👤
)} {item.author_name}
{/* Stats + Favorite */}
{playCount && ( {playCount} )} {likeCount && ( {likeCount} )} {commentCount && ( {commentCount} )}
); }