Fix ordering dropdown
All checks were successful
Game Ideas build for PR / build_test (pull_request) Successful in 53s

This commit is contained in:
Maxime Adler
2025-05-15 14:58:42 +02:00
parent 7a7863f789
commit cd364bddf1
3 changed files with 11 additions and 3 deletions

View File

@@ -27,7 +27,7 @@
@if (Params.Headers != null) @if (Params.Headers != null)
{ {
@foreach (var header in (HeaderValues ?? []).UnionBy(Params.Headers, Params.GetHeaderLabel).OrderBy(Params.GetHeaderOrder ?? Params.GetHeaderLabel)) @foreach (var header in GetHeaders())
{ {
<SelectRow IsSelected=@(HeaderValues?.Contains(header)) <SelectRow IsSelected=@(HeaderValues?.Contains(header))
Label="@Params.GetHeaderLabel(header)" Theme=Theme Label="@Params.GetHeaderLabel(header)" Theme=Theme
@@ -42,7 +42,7 @@
@if (Params.Items != null) @if (Params.Items != null)
{ {
@foreach (var item in (Values ?? []).UnionBy(Params.Items, Params.GetItemLabel).OrderBy(Params.GetItemOrder ?? Params.GetItemLabel)) @foreach (var item in GetItems())
{ {
<SelectRow IsSelected=@(Values?.Contains(item)) <SelectRow IsSelected=@(Values?.Contains(item))
Label="@Params.GetItemLabel(item)" Theme=Theme Label="@Params.GetItemLabel(item)" Theme=Theme

View File

@@ -101,4 +101,12 @@ public partial class Select<TItem, THeader>
await ValuesChanged.InvokeAsync(Values); await ValuesChanged.InvokeAsync(Values);
} }
} }
private List<THeader> GetHeaders() => [.. (HeaderValues ?? [])
.UnionBy(Params.Headers, Params.GetHeaderLabel)
.OrderBy(Params.GetHeaderOrder ?? Params.GetHeaderLabel)];
private List<TItem> GetItems() => [.. (Values ?? [])
.UnionBy(Params.Items, Params.GetItemLabel)
.OrderBy(Params.GetItemOrder ?? Params.GetItemLabel)];
} }

View File

@@ -10,7 +10,7 @@ public partial class SelectSearch<TItem>
[Parameter] public SelectTheme Theme { get; set; } [Parameter] public SelectTheme Theme { get; set; }
[Parameter] public List<TItem> Items { get; set; } = []; [Parameter] public List<TItem> Items { get; set; } = [];
[Parameter] public Func<TItem, string> GetLabel { get; set; } = _ => string.Empty; [Parameter] public Func<TItem, string> GetLabel { get; set; } = _ => string.Empty;
[Parameter] public Func<TItem, string>? OrderBy { get; set; } = _ => string.Empty; [Parameter] public Func<TItem, string>? OrderBy { get; set; }
[Parameter] public List<TItem> Values { get; set; } = []; [Parameter] public List<TItem> Values { get; set; } = [];
[Parameter] public EventCallback<List<TItem>> ValuesChanged { get; set; } [Parameter] public EventCallback<List<TItem>> ValuesChanged { get; set; }
[Parameter] public string Placeholder { get; set; } = string.Empty; [Parameter] public string Placeholder { get; set; } = string.Empty;