@page "/ispezioni" @attribute [Authorize] @using SteUp.Shared.Components.Layout @using SteUp.Shared.Components.SingleElements.Card @using SteUp.Shared.Core.Entities @using SteUp.Shared.Core.Interface.LocalDb @inject IIspezioniService IspezioniService @inject IDialogService Dialog @* L'azione "nuova ispezione" non sta qui: vive nella barra in basso, dove il pollice arriva senza attraversare lo schermo. *@
@if (_loading) { @* Scheletri, non uno spinner in mezzo al contenuto: la pagina ha gia' la forma che avra', e non salta quando i dati arrivano. *@ } else if (Ispezioni.Count == 0) {

Nessuna ispezione

Apri la prima ispezione scegliendo il punto vendita da controllare.

Nuova ispezione
} else {
}
@code{ private List Ispezioni { get; set; } = []; private bool _loading = true; private string? Subtitle => _loading || Ispezioni.Count == 0 ? null : Ispezioni.Count == 1 ? "1 ispezione" : $"{Ispezioni.Count} ispezioni"; protected override async Task OnInitializedAsync() { Ispezioni = await IspezioniService.GetAllIspezioniWithSchedeAsync(UserSession.User.Username); _loading = false; StateHasChanged(); } private async Task NewInspection() { if (await SteupDataService.CanOpenNewInspection()) { var modal = await Dialog.OpenSelectShop(); // La scelta del punto vendita naviga da sola sull'ispezione; se // l'utente torna indietro, la lista dev'essere quella aggiornata. if (modal is { Canceled: true }) return; } else { await Dialog.ShowWarning( "Per aprire una nuova ispezione devi prima concludere tutte le ispezioni aperte da piu' di 20 giorni."); } } private void OnClickIspezione(Ispezione ispezione) { SteupDataService.InspectionPageState.Ispezione = ispezione; NavigationManager.NavigateTo("/ispezione"); } }