From 3c3448dee0f3dc19c7f1304a791db057b534f185 Mon Sep 17 00:00:00 2001 From: Maxime Adler Date: Thu, 15 May 2025 12:35:50 +0200 Subject: [PATCH] Order dropdown content (#49) --- .../Pages/Games/Filter/AdvancedGameFilter.razor | 2 +- .../Shared/Components/Select/Models/SelectParams.cs | 2 ++ .../GameIdeas.BlazorApp/Shared/Components/Select/Select.razor | 4 ++-- .../Shared/Components/SelectSearch/SelectSearch.razor.cs | 2 ++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/GameIdeas/Client/GameIdeas.BlazorApp/Pages/Games/Filter/AdvancedGameFilter.razor b/src/GameIdeas/Client/GameIdeas.BlazorApp/Pages/Games/Filter/AdvancedGameFilter.razor index 37c3ae6..d0863d8 100644 --- a/src/GameIdeas/Client/GameIdeas.BlazorApp/Pages/Games/Filter/AdvancedGameFilter.razor +++ b/src/GameIdeas/Client/GameIdeas.BlazorApp/Pages/Games/Filter/AdvancedGameFilter.razor @@ -27,7 +27,7 @@ - @ResourcesKey.LastAdd diff --git a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/Models/SelectParams.cs b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/Models/SelectParams.cs index 24b788a..39bf705 100644 --- a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/Models/SelectParams.cs +++ b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/Models/SelectParams.cs @@ -4,8 +4,10 @@ public class SelectParams { public List Items { get; set; } = []; public Func GetItemLabel { get; set; } = _ => string.Empty; + public Func? GetItemOrder { get; set; } public List Headers { get; set; } = []; public Func GetHeaderLabel { get; set; } = _ => string.Empty; + public Func? GetHeaderOrder { get; set; } public Func? AddItem { get; set; } } diff --git a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/Select.razor b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/Select.razor index 1ab6f65..87519ff 100644 --- a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/Select.razor +++ b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/Select.razor @@ -27,7 +27,7 @@ @if (Params.Headers != null) { - @foreach (var header in (HeaderValues ?? []).UnionBy(Params.Headers, Params.GetHeaderLabel)) + @foreach (var header in (HeaderValues ?? []).UnionBy(Params.Headers, Params.GetHeaderLabel).OrderBy(Params.GetHeaderOrder ?? Params.GetHeaderLabel)) { [Parameter] public SelectTheme Theme { get; set; } [Parameter] public List Items { get; set; } = []; [Parameter] public Func GetLabel { get; set; } = _ => string.Empty; + [Parameter] public Func? OrderBy { get; set; } = _ => string.Empty; [Parameter] public List Values { get; set; } = []; [Parameter] public EventCallback> ValuesChanged { get; set; } [Parameter] public string Placeholder { get; set; } = string.Empty; @@ -27,6 +28,7 @@ public partial class SelectSearch { Items = Items, GetItemLabel = GetLabel, + GetItemOrder = OrderBy, AddItem = AddItem };