Add sorting functionality for prospects with new ProspectSortControl component

This commit is contained in:
troogs
2026-04-16 21:42:15 +02:00
parent 701388ee34
commit eda6625e91
12 changed files with 153 additions and 60 deletions

View File

@@ -65,32 +65,6 @@ namespace FoodsharingSiegen.Server.Pages
await EditProspectDialog.ShowAsync(ModalService, LoadProspects);
}
private async Task OpenSortDialogAsync()
{
await ProspectSortDialog.ShowAsync(ModalService, CurrentSort, async option =>
{
CurrentSort = option;
await InvokeAsync(StateHasChanged);
});
}
private bool HasCustomSort => CurrentSort != ProspectSortOption.NameAscending;
private string CurrentSortText => CurrentSort switch
{
ProspectSortOption.NameDescending => "Sortierung: Name (absteigend)",
ProspectSortOption.ModifiedAscending => "Sortierung: Zuletzt geaendert (aufsteigend) ",
ProspectSortOption.ModifiedDescending => "Sortierung: Zuletzt geaendert (absteigend) ",
_ => string.Empty
};
private async Task ResetSortAsync()
{
CurrentSort = ProspectSortOption.NameAscending;
await InvokeAsync(StateHasChanged);
}
#endregion
#region Private Method FilterChangedAsync
@@ -106,18 +80,6 @@ namespace FoodsharingSiegen.Server.Pages
await LocalStorageService.SetItem(StorageKeys.ProspectFilter, Filter);
}
private List<Prospect> SortProspects(List<Prospect> prospects)
{
return CurrentSort switch
{
ProspectSortOption.NameAscending => prospects.OrderBy(x => x.Name, StringComparer.OrdinalIgnoreCase).ToList(),
ProspectSortOption.NameDescending => prospects.OrderByDescending(x => x.Name, StringComparer.OrdinalIgnoreCase).ToList(),
ProspectSortOption.ModifiedAscending => prospects.OrderBy(x => x.Modified ?? x.Created).ToList(),
ProspectSortOption.ModifiedDescending => prospects.OrderByDescending(x => x.Modified ?? x.Created).ToList(),
_ => prospects
};
}
#endregion
#region Private Method LoadProspects