+
+
-
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 727513b..621f0d5 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
@@ -1,3 +1,5 @@
+using GameIdeas.BlazorApp.Shared.Components.Search;
+using GameIdeas.BlazorApp.Shared.Components.Select.Models;
using Microsoft.AspNetCore.Components;
namespace GameIdeas.BlazorApp.Shared.Components.Select;
@@ -11,41 +13,31 @@ public partial class MultipleSelectList
[Parameter] public bool AlignRight { get; set; }
private bool ContentVisile = false;
- private DateTime ContentLastFocusOut = DateTime.Now;
- private ElementReference Container;
- private string? Text;
+ private SearchInput? SearchInput;
- public async Task OpenAsync()
- {
- if (DateTime.Now - ContentLastFocusOut >= TimeSpan.FromSeconds(0.2))
- {
- await Container.FocusAsync();
- ContentVisile = true;
- }
- }
+ public void Open() => ContentVisile = true;
public void Close() => ContentVisile = false;
- private async Task HandleButtonClicked() => await OpenAsync();
+ private void HandleFocusOut() => Close();
- private void HandleFocusOut()
- {
- ContentLastFocusOut = DateTime.Now;
- ContentVisile = true;
- }
+ private void HandleFocusIn() => Open();
private async Task HandleItemClicked(SelectElement selectedValue)
{
selectedValue.IsSelected = !selectedValue.IsSelected;
Values = Items.Where(x => x.IsSelected && x.Item != null).Select(x => x.Item!);
- Text = string.Join(", ", Values);
+ SearchInput?.SetText(string.Join(", ", Values));
await ValuesChanged.InvokeAsync(Values);
}
- private void HandleTextChanged(string args)
+
+ private void HandleTextChanged()
{
foreach (var item in Items)
{
item.IsSelected = false;
}
+
+ Close();
}
}
\ No newline at end of file
diff --git a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/MultipleSelectList.razor.css b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/MultipleSelectList.razor.css
index 3c7930d..0884707 100644
--- a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/MultipleSelectList.razor.css
+++ b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/MultipleSelectList.razor.css
@@ -1 +1,49 @@
-@import "SelectList.razor.css";
+.select-list {
+ position: relative;
+}
+
+.select-container {
+ margin-top: 4px;
+ position: absolute;
+}
+
+.align-right {
+ right: 0;
+}
+
+.select-content {
+ overflow: hidden;
+ display: flex;
+ flex-direction: column;
+ border-radius: var(--small-radius);
+ animation-name: fade-in;
+ animation-duration: 0.4s;
+}
+
+.line {
+ margin: 2px 6px;
+ border-bottom: 2px solid var(--low-white);
+}
+
+
+/***** Navigation Theme *****/
+.select-content.navigation {
+ background: var(--violet);
+ box-shadow: var(--drop-shadow);
+}
+
+/***** Sort Theme *****/
+.select-content.sort {
+ background: var(--semi-black);
+ box-shadow: var(--drop-shadow);
+ padding: 4px 0;
+}
+
+/***** Filter Theme *****/
+.select-content.filter {
+ background: var(--semi-black);
+ box-shadow: var(--drop-shadow);
+ padding: 4px 0;
+ min-width: 150px;
+}
+
diff --git a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/SelectList.razor.cs b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/SelectList.razor.cs
index 13e6254..59423dd 100644
--- a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/SelectList.razor.cs
+++ b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/SelectList.razor.cs
@@ -1,3 +1,4 @@
+using GameIdeas.BlazorApp.Shared.Components.Select.Models;
using Microsoft.AspNetCore.Components;
namespace GameIdeas.BlazorApp.Shared.Components.Select;
@@ -34,7 +35,7 @@ public partial class SelectList
private void HandleFocusOut()
{
ContentLastFocusOut = DateTime.Now;
- ContentVisile = true;
+ ContentVisile = false;
}
private async Task HandleItemClicked(SelectElement selectedValue)
diff --git a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/SelectList.razor.css b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/SelectList.razor.css
index facfbda..3e5473b 100644
--- a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/SelectList.razor.css
+++ b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/SelectList.razor.css
@@ -38,4 +38,3 @@
box-shadow: var(--drop-shadow);
padding: 4px 0;
}
-
diff --git a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Layouts/Header/HeaderLayout.razor.cs b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Layouts/Header/HeaderLayout.razor.cs
index 7dd8fdc..f3e335a 100644
--- a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Layouts/Header/HeaderLayout.razor.cs
+++ b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Layouts/Header/HeaderLayout.razor.cs
@@ -1,6 +1,6 @@
using GameIdeas.BlazorApp.Pages.Games.Models;
using GameIdeas.BlazorApp.Shared.Components.Account;
-using GameIdeas.BlazorApp.Shared.Components.Select;
+using GameIdeas.BlazorApp.Shared.Components.Select.Models;
using GameIdeas.Resources;
using Microsoft.AspNetCore.Components;