+
@if (ContentVisile)
{
diff --git a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/MultipleSelectList.razor.cs b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/MultipleSelectList.razor.cs
index 7b4209d..8af5bb8 100644
--- a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/MultipleSelectList.razor.cs
+++ b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/MultipleSelectList.razor.cs
@@ -14,14 +14,24 @@ public partial class MultipleSelectList
private bool ContentVisile = false;
private SearchInput? SearchInput;
+ private bool ShouldClose = false;
public void Open() => ContentVisile = true;
- public void Close() => ContentVisile = false;
+ public async Task Close()
+ {
+ await Task.Delay(TimeSpan.FromSeconds(0.2));
+
+ if (ShouldClose)
+ {
+ ContentVisile = false;
+ ShouldClose = false;
+ }
+ }
public void Toggle() => ContentVisile = !ContentVisile;
- private void HandleFocusOut() => Close();
+ private async Task HandleFocusOut() => await Close();
private void HandleFocusIn() => Open();
@@ -33,13 +43,31 @@ public partial class MultipleSelectList
await ValuesChanged.InvokeAsync(Values);
}
- private void HandleTextChanged()
+ private async Task HandleTextChanged()
{
foreach (var item in Items)
{
item.IsSelected = false;
}
- Close();
+ await Close();
+ }
+ private void HandleContentFocusOut(Microsoft.AspNetCore.Components.Web.FocusEventArgs args)
+ {
+ ShouldClose = true;
+ ContentVisile = false;
+ }
+ private void HandleContentFocusIn(Microsoft.AspNetCore.Components.Web.FocusEventArgs args)
+ {
+ ShouldClose = true;
+ }
+ private void HandleSearchClicked()
+ {
+ if (ContentVisile)
+ {
+ ShouldClose = false;
+ }
+
+ ContentVisile = !ContentVisile;
}
}
\ No newline at end of file