Add ProspectSortOption enum and implement sorting dialog with buttons
This commit is contained in:
10
FoodsharingSiegen.Contracts/Enums/ProspectSortOption.cs
Normal file
10
FoodsharingSiegen.Contracts/Enums/ProspectSortOption.cs
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
namespace FoodsharingSiegen.Contracts.Enums
|
||||||
|
{
|
||||||
|
public enum ProspectSortOption
|
||||||
|
{
|
||||||
|
NameAscending,
|
||||||
|
NameDescending,
|
||||||
|
ModifiedAscending,
|
||||||
|
ModifiedDescending
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
@inherits FsBase
|
||||||
|
@using FoodsharingSiegen.Contracts.Enums
|
||||||
|
|
||||||
|
<div class="d-grid gap-2">
|
||||||
|
<Button Color="@GetSortButtonColor(ProspectSortOption.NameAscending)" Clicked="() => SelectAsync(ProspectSortOption.NameAscending)">Name (aufsteigend)</Button>
|
||||||
|
<Button Color="@GetSortButtonColor(ProspectSortOption.NameDescending)" Clicked="() => SelectAsync(ProspectSortOption.NameDescending)">Name (absteigend)</Button>
|
||||||
|
<Button Color="@GetSortButtonColor(ProspectSortOption.ModifiedAscending)" Clicked="() => SelectAsync(ProspectSortOption.ModifiedAscending)">Geändert (aufsteigend)</Button>
|
||||||
|
<Button Color="@GetSortButtonColor(ProspectSortOption.ModifiedDescending)" Clicked="() => SelectAsync(ProspectSortOption.ModifiedDescending)">Geändert (absteigend)</Button>
|
||||||
|
</div>
|
||||||
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