LANCommander/LANCommander.Client/UI/Components/DownloadQueue.razor
2024-05-27 17:07:28 -05:00

55 lines
1.6 KiB
Text

@inject DownloadService DownloadService
<Drawer Placement="bottom" Class="download-queue">
<h2>In Progress</h2>
@foreach (var queueItem in DownloadService.Queue.Where(qi => qi.State))
{
<div class="queue-item">
<img src="@queueItem.CoverPath" />
<div class="queue-item-info">
<div>
<h4>@queueItem.Title | @queueItem</h4>
<span>@queueItem.BytesDownloaded / @queueItem.TotalBytes</span>
</div>
</div>
</div>
}
<h2>Up Next</h2>
@foreach (var queueItem in DownloadService.Queue.Where(qi => qi.Status == Enums.DownloadStatus.Idle))
{
<div class="queue-item">
<img src="@queueItem.CoverPath" />
<div class="queue-item-info">
<div>
<h4>@queueItem.Title | @queueItem</h4>
<span>@queueItem.BytesDownloaded / @queueItem.TotalBytes</span>
</div>
</div>
</div>
}
<h2>Completed</h2>
@foreach (var queueItem in DownloadService.Queue.Where(qi => !qi.State))
{
<div class="queue-item">
<img src="@queueItem.CoverPath" />
<div class="queue-item-info">
<div>
<h4>@queueItem.Title | @queueItem</h4>
<span>@queueItem.BytesDownloaded / @queueItem.TotalBytes</span>
</div>
</div>
</div>
}
</Drawer>
@code {
protected override async Task OnInitializedAsync()
{
DownloadService.OnQueueChanged += () =>
{
StateHasChanged();
};
}
}