import React, { useState } from 'react'; import { useDownloadContext } from '../context/DownloadContext/DownloadContext'; import { DownloadingIcon, DownloadedIcon } from './SvgIcons'; import './DownloadTracker.css'; export const DownloadTracker: React.FC = () => { const { downloads, queueCount, getDownloadedTracks } = useDownloadContext(); const [isExpanded, setIsExpanded] = useState(false); // Calculate active downloads from downloads object const activeDownloads = Object.entries(downloads).filter(([_, download]) => download.progress < 100); const activeCount = activeDownloads.length; const completedCount = getDownloadedTracks ? getDownloadedTracks().length : 0; // Only show when there are active downloads or queue items if (activeCount === 0 && queueCount === 0) { return null; } const totalProgress = activeDownloads.length > 0 ? activeDownloads.reduce((sum, [_, download]) => sum + download.progress, 0) / activeDownloads.length : 0; return (
{isExpanded && (

Downloads

{activeCount} active {queueCount} queued {completedCount} completed
{activeDownloads.length > 0 && (

Active Downloads

{activeDownloads.slice(0, 5).map(([downloadId, download]) => (
{downloadId || 'Unknown Track'}
{download.status || 'Downloading...'}
{Math.round(download.progress)}%
))} {activeDownloads.length > 5 && (
+{activeDownloads.length - 5} more downloads
)}
)}
View All Downloads
)}
); };