Fix text bug dropdown #56

Merged
Egamorf merged 2 commits from fix/text-bug-dropdown into main 2025-05-18 17:05:41 +02:00
3 changed files with 29 additions and 2 deletions
Showing only changes of commit 163a251579 - Show all commits

View File

@@ -7,6 +7,7 @@
placeholder="@Placeholder"
disabled="@IsDisable"
style="@(IsDisable ? "pointer-events: none" : "")"
onClick="this.select();"
@bind=@Text
@bind:event="oninput"
@bind:after="HandleTextChanged"

View File

@@ -51,11 +51,37 @@ public partial class SelectSearch<TItem>
private async Task HandleClearClicked()
{
Values = [];
await ValuesChanged.InvokeAsync([.. Values]);
Select?.Close();
SearchInput?.SetText(string.Empty);
await ValuesChanged.InvokeAsync([]);
}
private void HandleFocusIn()
{
Select?.Open();
}
private void HandleTextChanged(string args)
{
if (!string.IsNullOrEmpty(args))
{
var keywords = args
.Split([' '], StringSplitOptions.RemoveEmptyEntries)
.Select(k => k.Trim())
.ToArray() ?? [];
SelectParams.Items = [.. Items
.Where(game => keywords.All(
kw => SelectParams.GetItemLabel(game).Contains(kw, StringComparison.OrdinalIgnoreCase)
))
.OrderBy(game => keywords.Min(kw =>
SelectParams.GetItemLabel(game).IndexOf(kw, StringComparison.OrdinalIgnoreCase)
))
.ThenBy(game => SelectParams.GetItemLabel(game).Length)];
}
else
{
SelectParams.Items = Items;
SearchInput?.SetText(string.Join(", ", Values?.Select(GetLabel) ?? []));
}
}
}

View File

@@ -22,7 +22,7 @@ public class GlobalConstants
public const int API_PORT = 8000;
public const string SUB_DOMAIN_NAME = "api-";
public const double DELAY_INPUT_MS = 500;
public const double DELAY_INPUT_MS = 450;
public const int MAX_DESCRIPTION_LENGTH = 350;
}