Added SearchPageBase class and implemented it on the voice works page and circles page. Turned off AOT compilation.

This commit is contained in:
2025-11-27 18:28:57 -05:00
parent 6817fa7353
commit 403c436a34
10 changed files with 341 additions and 321 deletions

View File

@@ -0,0 +1,41 @@
@using JSMR.Application.Circles.Queries.Search
@using JSMR.UI.Blazor.Filters
@using JSMR.UI.Blazor.Services
<div class="search-filter-control-container">
<div class="search-filter-control-span-3">
<BitTextField Placeholder="Circle Name or Maker Id"
Immediate="true"
DebounceTime="500"
Value="@Value.Keywords"
ValueChanged="@(value => Update(Value with { Keywords = value }))" />
</div>
<div class="search-filter-control-span-1">
<BitDropdown Items="CircleStatuses"
Placeholder="Select..."
TItem="BitDropdownItem<CircleStatus?>"
TValue="CircleStatus?"
Value="@Value.Status"
ValueChanged="@(value => Update(Value with { Status = value }))" />
</div>
</div>
@code {
[Parameter]
public CircleFilterState Value { get; set; } = new();
[Parameter]
public EventCallback<CircleFilterState> ValueChanged { get; set; }
List<BitDropdownItem<CircleStatus?>> CircleStatuses =
[
new() { Text = "Not Blacklisted", Value = CircleStatus.NotBlacklisted },
new() { Text = "Favorites", Value = CircleStatus.Favorited },
new() { Text = "Blacklisted", Value = CircleStatus.Blacklisted },
new() { Text = "Spam", Value = CircleStatus.Spam },
new() { Text = "All", Value = null }
];
private Task Update(CircleFilterState next)
=> ValueChanged.InvokeAsync(next with { PageNumber = 1 });
}