import AlbumArt from "./AlbumArt"; import MusicBrainzLink from "./MusicBrainzLink"; interface Artist { artistName: string; } interface TopTrackItemProps { trackName: string; releaseMbId: string | null | undefined; artists: string | null | undefined; count: number; rank: number; maxCount: number; } export default function TopTrackItem({ trackName, releaseMbId, artists, count, rank, maxCount, }: TopTrackItemProps) { const barWidth = maxCount > 0 ? (count / maxCount) * 100 : 0; // Parse artists JSON let artistNames = "Unknown Artist"; if (artists) { try { const parsed = typeof artists === 'string' ? JSON.parse(artists) : artists; if (Array.isArray(parsed)) { artistNames = parsed.map((a: Artist) => a.artistName).join(", "); } else if (typeof parsed === 'string') { artistNames = parsed; } } catch { artistNames = String(artists); } } return (
{artistNames}
{count.toLocaleString()}