@using SteUp.Shared.Components.Layout @using SteUp.Shared.Core.Dto @* Scelta degli articoli dalla griglia. Al posto del menu a tendina a selezione multipla, un elenco a schermo intero con righe da 56px: si centra con i guanti, e il conteggio dei selezionati resta sempre a vista. *@
@if (!Articoli.IsNullOrEmpty()) {
@if (!FilterText.IsNullOrEmpty()) { }
}
@if (Articoli.IsNullOrEmpty()) {

Nessun articolo in griglia

Per questo reparto e motivo non ci sono articoli: usa lo scanner o digita il codice.

} else if (Filtrati.Count == 0) {

Nessun risultato

Nessun articolo corrisponde alla ricerca.

Azzera la ricerca
} else {
}
@if (!Articoli.IsNullOrEmpty()) {
Annulla @(_selected.Count == 0 ? "Aggiungi" : $"Aggiungi {_selected.Count}")
}
@code { [CascadingParameter] private IMudDialogInstance MudDialog { get; set; } = null!; [Parameter] public List? Articoli { get; set; } private readonly List _selected = []; private string? FilterText { get; set; } private List Filtrati => FilterText.IsNullOrEmpty() ? Articoli ?? [] : (Articoli ?? []).FindAll(x => x.Descrizione.ContainsIgnoreCase(FilterText!) || x.Barcode.ContainsIgnoreCase(FilterText!)); private string? Conteggio => Articoli.IsNullOrEmpty() ? null : _selected.Count > 0 ? $"{_selected.Count} selezionat{(_selected.Count == 1 ? "o" : "i")}" : $"{Articoli!.Count} disponibili"; private bool IsSelected(ArticoliInGrigliaDto art) => _selected.Contains(art); private void Toggle(ArticoliInGrigliaDto art) { if (!_selected.Remove(art)) _selected.Add(art); } private void OnFilterInput(ChangeEventArgs e) => FilterText = e.Value?.ToString(); private void ClearFilter() => FilterText = null; private void Cancel() => MudDialog.Cancel(); private void Submit() => MudDialog.Close(DialogResult.Ok(_selected.ToList())); }