Rework select component #14

Merged
Egamorf merged 7 commits from feature/rework-select-list into main 2025-04-14 09:01:50 +02:00
4 changed files with 15 additions and 54 deletions
Showing only changes of commit e523b19f8e - Show all commits

View File

@@ -7,20 +7,20 @@
<div class="duplicate"> <div class="duplicate">
<SelectSearch TItem="PlatformDto" Placeholder="@ResourcesKey.Platforms" GetLabel="@(p => p.Label)" <SelectSearch TItem="PlatformDto" Placeholder="@ResourcesKey.Platforms" GetLabel="@(p => p.Label)"
ValuesChanged=HandlePlatformsChanged Values=GameFilter.Platforms Theme="Theme" Items="Categories?.Platforms" /> @bind-Values=GameFilter.Platforms @bind-Values:after=HandleValueChanged Theme="Theme" Items="Categories?.Platforms" />
<SelectSearch TItem="TagDto" Placeholder="@ResourcesKey.Tags" GetLabel="@(p => p.Label)" <SelectSearch TItem="TagDto" Placeholder="@ResourcesKey.Tags" GetLabel="@(p => p.Label)"
ValuesChanged=HandleTagsChanged Values=GameFilter.Tags Theme="Theme" Items="Categories?.Tags" /> @bind-Values=GameFilter.Tags @bind-Values:after=HandleValueChanged Theme="Theme" Items="Categories?.Tags" />
</div> </div>
<SelectSearch TItem="PropertyDto" Placeholder="@ResourcesKey.Properties" GetLabel="@(p => p.Label)" <SelectSearch TItem="PropertyDto" Placeholder="@ResourcesKey.Properties" GetLabel="@(p => p.Label)"
ValuesChanged=HandlePropertiesChanged Values=GameFilter.Properties Theme="Theme" Items="Categories?.Properties" /> @bind-Values=GameFilter.Properties @bind-Values:after=HandleValueChanged Theme="Theme" Items="Categories?.Properties" />
<SelectSearch TItem="DeveloperDto" Placeholder="@ResourcesKey.Developers" GetLabel="@(p => p.Name)" <SelectSearch TItem="DeveloperDto" Placeholder="@ResourcesKey.Developers" GetLabel="@(p => p.Name)"
ValuesChanged=HandleDevelopersChanged Values=GameFilter.Developers Theme="Theme" Items="Categories?.Developers" /> @bind-Values=GameFilter.Developers @bind-Values:after=HandleValueChanged Theme="Theme" Items="Categories?.Developers" />
<SelectSearch TItem="PublisherDto" Placeholder="@ResourcesKey.Publishers" GetLabel="@(p => p.Name)" <SelectSearch TItem="PublisherDto" Placeholder="@ResourcesKey.Publishers" GetLabel="@(p => p.Name)"
ValuesChanged=HandlePublishersChanged Values=GameFilter.Publishers Theme="Theme" Items="Categories?.Publishers" /> @bind-Values=GameFilter.Publishers @bind-Values:after=HandleValueChanged Theme="Theme" Items="Categories?.Publishers" />
<span class="title">@ResourcesKey.LastAdd</span> <span class="title">@ResourcesKey.LastAdd</span>
</div> </div>

View File

@@ -12,29 +12,8 @@ public partial class AdvancedGameFilter
private readonly SelectTheme Theme = SelectTheme.AdvancedFilter; private readonly SelectTheme Theme = SelectTheme.AdvancedFilter;
private async Task HandlePublishersChanged(List<PublisherDto> args) private async Task HandleValueChanged()
{ {
GameFilter.Publishers = args;
await GameFilterChanged.InvokeAsync(GameFilter);
}
private async Task HandleDevelopersChanged(List<DeveloperDto> args)
{
GameFilter.Developers = args;
await GameFilterChanged.InvokeAsync(GameFilter);
}
private async Task HandlePropertiesChanged(List<PropertyDto> args)
{
GameFilter.Properties = args;
await GameFilterChanged.InvokeAsync(GameFilter);
}
private async Task HandleTagsChanged(List<TagDto> args)
{
GameFilter.Tags = args;
await GameFilterChanged.InvokeAsync(GameFilter);
}
private async Task HandlePlatformsChanged(List<PlatformDto> args)
{
GameFilter.Platforms = args;
await GameFilterChanged.InvokeAsync(GameFilter); await GameFilterChanged.InvokeAsync(GameFilter);
} }
} }

View File

@@ -30,24 +30,24 @@
</div> </div>
<div class="search-container"> <div class="search-container">
<SearchInput TextChanged=HandleTitleChanged Text="@Value.Title" <SearchInput @bind-Text="@Value.Title"
Placeholder="@ResourcesKey.Research" /> Placeholder="@ResourcesKey.Research" />
</div> </div>
<div class="select-container"> <div class="select-container">
<SelectSearch TItem="PlatformDto" Placeholder="@ResourcesKey.Platforms" GetLabel="@(p => p.Label)" <SelectSearch TItem="PlatformDto" Placeholder="@ResourcesKey.Platforms" GetLabel="@(p => p.Label)"
ValuesChanged=HandlePlatformsChanged Values=Value.Platforms Theme="SelectTheme.Filter" Items="Categories?.Platforms" /> @bind-Values=Value.Platforms @bind-Values:after="HandleValueChanged" Theme="SelectTheme.Filter" Items="Categories?.Platforms" />
</div> </div>
<div class="select-container"> <div class="select-container">
<SelectSearch TItem="TagDto" Placeholder="@ResourcesKey.Tags" GetLabel="@(p => p.Label)" <SelectSearch TItem="TagDto" Placeholder="@ResourcesKey.Tags" GetLabel="@(p => p.Label)"
ValuesChanged=HandleTagsChanged Values=Value.Tags Theme="SelectTheme.Filter" Items="Categories?.Tags" /> @bind-Values=Value.Tags @bind-Values:after="HandleValueChanged" Theme="SelectTheme.Filter" Items="Categories?.Tags" />
</div> </div>
<div class="slider-container"> <div class="slider-container">
<SliderRange Params="SliderRangeParams" <SliderRange Params="SliderRangeParams"
MaxChanged=HandleMaxChanged Max="Value.MaxInterest" @bind-Max="Value.MaxInterest" @bind-Max:after="HandleValueChanged"
MinChanged=HandleMinChanged Min="Value.MinInterest" /> @bind-Min="Value.MinInterest" @bind-Min:after="HandleValueChanged" />
</div> </div>
</div> </div>

View File

@@ -48,39 +48,21 @@ public partial class GameFilter
DisplayType = displayType; DisplayType = displayType;
await DisplayTypeChanged.InvokeAsync(displayType); await DisplayTypeChanged.InvokeAsync(displayType);
} }
private async Task HandleSortTypeClicked(IEnumerable<SortTypeDto> sortTypes) private async Task HandleSortTypeClicked(IEnumerable<SortTypeDto> sortTypes)
{ {
Value.SortType = sortTypes.FirstOrDefault(); Value.SortType = sortTypes.FirstOrDefault();
await ValueChanged.InvokeAsync(Value); await ValueChanged.InvokeAsync(Value);
} }
private async Task HandleSortPropertyClicked(IEnumerable<SortPropertyDto> sortProperties) private async Task HandleSortPropertyClicked(IEnumerable<SortPropertyDto> sortProperties)
{ {
Value.SortProperty = sortProperties.FirstOrDefault(); Value.SortProperty = sortProperties.FirstOrDefault();
await ValueChanged.InvokeAsync(Value); await ValueChanged.InvokeAsync(Value);
} }
private async Task HandleTagsChanged(List<TagDto> args)
private async Task HandleValueChanged()
{ {
Value.Tags = args;
await ValueChanged.InvokeAsync(Value);
}
private async Task HandleMinChanged(int args)
{
Value.MinInterest = args;
await ValueChanged.InvokeAsync(Value);
}
private async Task HandleMaxChanged(int args)
{
Value.MaxInterest = args;
await ValueChanged.InvokeAsync(Value);
}
private async Task HandlePlatformsChanged(List<PlatformDto> args)
{
Value.Platforms = args;
await ValueChanged.InvokeAsync(Value);
}
private async Task HandleTitleChanged(string args)
{
Value.Title = args;
await ValueChanged.InvokeAsync(Value); await ValueChanged.InvokeAsync(Value);
} }
} }