import { Button } from "@/components/ui/button"; import { Card, CardContent } from "@/components/ui/card"; import { Download, FolderOpen, CheckCircle, XCircle, FileText, FileCheck, Globe } from "lucide-react"; import { Spinner } from "@/components/ui/spinner"; import { Tooltip, TooltipContent, TooltipTrigger, } from "@/components/ui/tooltip"; import type { TrackMetadata, TrackAvailability } from "@/types/api"; import { TidalIcon, DeezerIcon, QobuzIcon, AmazonIcon } from "./PlatformIcons"; interface TrackInfoProps { track: TrackMetadata & { album_name: string; release_date: string }; isDownloading: boolean; downloadingTrack: string | null; isDownloaded: boolean; isFailed: boolean; isSkipped: boolean; downloadingLyricsTrack?: string | null; downloadedLyrics?: boolean; failedLyrics?: boolean; skippedLyrics?: boolean; checkingAvailability?: boolean; availability?: TrackAvailability; onDownload: (isrc: string, name: string, artists: string, albumName?: string, spotifyId?: string) => void; onDownloadLyrics?: (spotifyId: string, name: string, artists: string, albumName?: string) => void; onCheckAvailability?: (spotifyId: string, isrc?: string) => void; onOpenFolder: () => void; } export function TrackInfo({ track, isDownloading, downloadingTrack, isDownloaded, isFailed, isSkipped, downloadingLyricsTrack, downloadedLyrics, failedLyrics, skippedLyrics, checkingAvailability, availability, onDownload, onDownloadLyrics, onCheckAvailability, onOpenFolder, }: TrackInfoProps) { return (
{track.images && ( {track.name} )}

{track.name}

{isSkipped ? ( ) : isDownloaded ? ( ) : isFailed ? ( ) : null}

{track.artists}

Album

{track.album_name}

Release Date

{track.release_date}

{track.isrc && (
{track.spotify_id && onCheckAvailability && ( {availability ? (
) : (

Check Availability

)}
)} {track.spotify_id && onDownloadLyrics && (

Download Lyric

)} {isDownloaded && ( )}
)}
); }