Add ProspectSortOption enum and implement sorting dialog with buttons
This commit is contained in:
39
FoodsharingSiegen.Server/Dialogs/ProspectSortDialog.razor.cs
Normal file
39
FoodsharingSiegen.Server/Dialogs/ProspectSortDialog.razor.cs
Normal file
@@ -0,0 +1,39 @@
|
||||
using Blazorise;
|
||||
using FoodsharingSiegen.Contracts.Enums;
|
||||
using FoodsharingSiegen.Server.BaseClasses;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
|
||||
namespace FoodsharingSiegen.Server.Dialogs
|
||||
{
|
||||
public partial class ProspectSortDialog : FsBase
|
||||
{
|
||||
[Parameter]
|
||||
public ProspectSortOption CurrentSort { get; set; } = ProspectSortOption.NameAscending;
|
||||
|
||||
[Parameter]
|
||||
public Func<ProspectSortOption, Task>? OnSortSelected { get; set; }
|
||||
|
||||
public static async Task ShowAsync(IModalService modalService, ProspectSortOption currentSort, Func<ProspectSortOption, Task> onSortSelected)
|
||||
{
|
||||
await modalService.Show<ProspectSortDialog>("Sortieren", p =>
|
||||
{
|
||||
p.Add(nameof(CurrentSort), currentSort);
|
||||
p.Add(nameof(OnSortSelected), onSortSelected);
|
||||
}, new ModalInstanceOptions
|
||||
{
|
||||
Size = ModalSize.Small,
|
||||
});
|
||||
}
|
||||
|
||||
private Color GetSortButtonColor(ProspectSortOption option)
|
||||
{
|
||||
return CurrentSort == option ? Color.Success : Color.Secondary;
|
||||
}
|
||||
|
||||
private async Task SelectAsync(ProspectSortOption option)
|
||||
{
|
||||
if (OnSortSelected != null) await OnSortSelected(option);
|
||||
await ModalService.Hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user