diff --git a/src/GameIdeas/Client/GameIdeas.BlazorApp/Pages/Games/Header/GameHeader.razor b/src/GameIdeas/Client/GameIdeas.BlazorApp/Pages/Games/Header/GameHeader.razor
index 515e557..40a95ab 100644
--- a/src/GameIdeas/Client/GameIdeas.BlazorApp/Pages/Games/Header/GameHeader.razor
+++ b/src/GameIdeas/Client/GameIdeas.BlazorApp/Pages/Games/Header/GameHeader.razor
@@ -1,7 +1,7 @@
@using GameIdeas.BlazorApp.Pages.Games
@using GameIdeas.BlazorApp.Shared.Components.Account
-@using GameIdeas.BlazorApp.Shared.Components.Select
-@using GameIdeas.BlazorApp.Shared.Components.Select.Models
+@using GameIdeas.BlazorApp.Shared.Components.SelectList
+@using GameIdeas.BlazorApp.Shared.Components.SelectList.Models
@using GameIdeas.BlazorApp.Shared.Models
@using GameIdeas.Resources
@@ -22,15 +22,15 @@
-
+
+
diff --git a/src/GameIdeas/Client/GameIdeas.BlazorApp/Pages/Games/Header/GameHeader.razor.cs b/src/GameIdeas/Client/GameIdeas.BlazorApp/Pages/Games/Header/GameHeader.razor.cs
index 936b5bc..5fda18c 100644
--- a/src/GameIdeas/Client/GameIdeas.BlazorApp/Pages/Games/Header/GameHeader.razor.cs
+++ b/src/GameIdeas/Client/GameIdeas.BlazorApp/Pages/Games/Header/GameHeader.razor.cs
@@ -1,6 +1,6 @@
using GameIdeas.BlazorApp.Shared.Components.Account;
-using GameIdeas.BlazorApp.Shared.Components.Select;
-using GameIdeas.BlazorApp.Shared.Components.Select.Models;
+using GameIdeas.BlazorApp.Shared.Components.SelectList;
+using GameIdeas.BlazorApp.Shared.Components.SelectList.Models;
using GameIdeas.BlazorApp.Shared.Models;
using GameIdeas.Resources;
using Microsoft.AspNetCore.Components;
@@ -13,23 +13,35 @@ public partial class GameHeader : ComponentBase
[Parameter] public RenderFragment? ChildContent { get; set; }
- private readonly IEnumerable
> SelectElements = [
- new SelectElement(AddType.Manual, ResourcesKey.ManualAdd),
- new SelectElement (AddType.Auto, ResourcesKey.AutoAdd)
- ];
+ private readonly Dictionary AddTypes = new() {
+ { AddType.Manual, ResourcesKey.ManualAdd },
+ { AddType.Auto, ResourcesKey.AutoAdd }
+ };
private AccountSettings? AccountSettings;
- private SelectList? SelectListAdd;
+ private Select, object>? SelectListAdd;
+ private SelectParams, object> SelectParams = new();
+
+ protected override void OnInitialized()
+ {
+ SelectParams = new()
+ {
+ Items = AddTypes,
+ GetItemLabel = item => item.Value,
+ };
+
+ base.OnInitialized();
+ }
private void HandleIconClicked()
{
throw new NotImplementedException();
}
- private async Task HandleAddTypeClickedAsync(AddType value)
+ private async Task HandleAddTypeClicked(IEnumerable> values)
{
SelectListAdd?.Close();
- await AddTypeChanged.InvokeAsync(value);
+ await AddTypeChanged.InvokeAsync(values.FirstOrDefault().Key);
}
private void HandleAccountClicked()
diff --git a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/SelectList.razor b/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/SelectList.razor
deleted file mode 100644
index 031592a..0000000
--- a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/SelectList.razor
+++ /dev/null
@@ -1,40 +0,0 @@
-@using GameIdeas.BlazorApp.Shared.Components.BackdropFilter
-@using GameIdeas.BlazorApp.Shared.Components.Select.Components
-@typeparam TItem
-@typeparam THeader
-
-
-
- @ChildContent
-
-
-
- @if (IsContentOpen)
- {
-
- @foreach (var header in Headers)
- {
-
- }
- @if (Headers.Any())
- {
-
- }
- @foreach (var item in Items)
- {
-
- }
-
- }
-
-
-
-
-
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
deleted file mode 100644
index 4aa9e5e..0000000
--- a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/SelectList.razor.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using GameIdeas.BlazorApp.Shared.Components.Select.Models;
-using Microsoft.AspNetCore.Components;
-
-namespace GameIdeas.BlazorApp.Shared.Components.Select;
-
-public partial class SelectList
-{
- [Parameter] public RenderFragment? ChildContent { get; set; }
- [Parameter] public TItem? Value { get; set; }
- [Parameter] public EventCallback ValueChanged { get; set; }
- [Parameter] public THeader? Header { get; set; }
- [Parameter] public EventCallback HeaderChanged { get; set; }
- [Parameter] public IEnumerable> Items { get; set; } = [];
- [Parameter] public IEnumerable> Headers { get; set; } = [];
- [Parameter] public SelectListTheme Theme { get; set; }
- [Parameter] public bool AlignRight { get; set; }
-
- private bool IsContentOpen = false;
-
- public void Close() =>
- IsContentOpen = false;
-
- private void HandleButtonClicked() =>
- IsContentOpen = !IsContentOpen;
-
- private void HandleContentClosed()
- {
- IsContentOpen = false;
- }
-
- private async Task HandleItemClicked(SelectElement selectedValue)
- {
- foreach (var item in Items)
- {
- item.IsSelected = false;
- }
-
- selectedValue.IsSelected = true;
-
- Value = selectedValue.Item;
- await ValueChanged.InvokeAsync(Value);
- }
-
- private async Task HandleHeaderClicked(SelectElement selectedValue)
- {
- foreach (var header in Headers)
- {
- header.IsSelected = false;
- }
-
- selectedValue.IsSelected = true;
-
- Header = selectedValue.Item;
- await HeaderChanged.InvokeAsync(Header);
- }
-}
\ No newline at end of file
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
deleted file mode 100644
index d979b9a..0000000
--- a/src/GameIdeas/Client/GameIdeas.BlazorApp/Shared/Components/Select/SelectList.razor.css
+++ /dev/null
@@ -1,45 +0,0 @@
-.select-list {
- position: relative;
-}
-
-.select-container {
- margin-top: 4px;
- position: absolute;
- z-index: var(--index-dropdown)
-}
-
-.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.2s;
-}
-
-.select-button {
- z-index: var(--index-component)
-}
-
-.line {
- margin: 2px 6px;
- border-bottom: 2px solid var(--input-selected);
-}
-
-
-/***** Navigation Theme *****/
-.select-content.navigation {
- background: var(--violet);
- box-shadow: var(--drop-shadow);
-}
-
-/***** Sort Theme *****/
-.select-content.sort {
- background: var(--dropdown-content);
- box-shadow: var(--drop-shadow);
- padding: 4px 0;
-}