@using LANCommander.Launcher.Models @inject InstallService InstallService @inject NavigationManager NavigationManager @if (InstallService.Queue.Any(qi => qi.State)) {

In Progress

@foreach (var queueItem in InstallService.Queue.Where(qi => qi.State)) {

@queueItem.Title

} }

Up Next

@foreach (var queueItem in InstallService.Queue.Where(qi => !qi.State && qi.Status == SDK.Enums.InstallStatus.Queued)) {

@queueItem.Title

} @if (!InstallService.Queue.Any(qi => qi.Status == SDK.Enums.InstallStatus.Queued)) { } @if (InstallService.Queue.Any(qi => !qi.State && qi.Status != SDK.Enums.InstallStatus.Queued && qi.Status != SDK.Enums.InstallStatus.Failed && qi.Status != SDK.Enums.InstallStatus.Canceled)) {

Completed

@foreach (var queueItem in InstallService.Queue.Where(qi => !qi.State)) {

@queueItem.Title

View in Library
} }
@code { bool Visible { get; set; } = false; protected override async Task OnInitializedAsync() { InstallService.OnQueueChanged += async () => { StateHasChanged(); }; } async Task Remove(IInstallQueueItem queueItem) { InstallService.Remove(queueItem); } async Task ViewInLibrary(IInstallQueueItem queueItem) { Visible = false; NavigationManager.NavigateTo("/" + queueItem.Id); } public async Task Show() { Visible = true; await InvokeAsync(StateHasChanged); } public async Task Hide() { Visible = false; await InvokeAsync(StateHasChanged); } }