diff --git a/JSMR.UI.Blazor/Components/VoiceWorkFilters.razor b/JSMR.UI.Blazor/Components/VoiceWorkFilters.razor
index 8611fb9..44abb79 100644
--- a/JSMR.UI.Blazor/Components/VoiceWorkFilters.razor
+++ b/JSMR.UI.Blazor/Components/VoiceWorkFilters.razor
@@ -6,6 +6,11 @@
@using JSMR.UI.Blazor.Filters
@using JSMR.UI.Blazor.Services
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- @*
+ @if (showAdvancedFilters)
+ {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @*
*@
+ }
@code {
@@ -169,6 +177,8 @@
[Parameter]
public EventCallback
ValueChanged { get; set; }
+ private bool showAdvancedFilters { get; set; }
+
List> locales = [];
List> saleStatuses = [];
List> circleStatuses = [];
@@ -180,6 +190,16 @@
List> tags = [];
List> creators = [];
+ private List presets =
+ [
+ new() { Text = "Default", Key = "Default" },
+ new() { Text = "Released English", Key = "Released-English" },
+ new() { Text = "Popular Upcoming", Key = "Favorite-Upcoming" },
+ new() { Text = "Popular This Week", Key = "Popular-ThisWeek" },
+ new() { Text = "Popular This Month", Key = "Popular-ThisMonth" },
+ new() { Text = "Popular This Year", Key = "Popular-ThisYear" },
+ ];
+
protected override async Task OnInitializedAsync()
{
locales = Lookups.GetLocales();
@@ -205,4 +225,89 @@
// Map DateTimeOffset? -> DateOnly?
private static DateOnly? FromDto(DateTimeOffset? dto) =>
dto is null ? null : DateOnly.FromDateTime(dto.Value.Date);
+
+ private async Task test(BitMenuButtonItem? item)
+ {
+ if (item is null)
+ return;
+
+ if (item.Key == "Default")
+ {
+ Value = new()
+ {
+ SaleStatus = SaleStatus.Available,
+ CircleStatus = CircleStatus.NotBlacklisted,
+ TagStatus = TagStatus.NotBlacklisted,
+ CreatorStatus = CreatorStatus.NotBlacklisted,
+ SupportedLanguages = [Language.Japanese, Language.English],
+ Locale = Locale.English
+ };
+
+ _ = Update(Value);
+ }
+ else if (item.Key == "Released-English")
+ {
+ Value = new()
+ {
+ SaleStatus = SaleStatus.Available,
+ SupportedLanguages = [Language.English],
+ Locale = Locale.English,
+ Sort = VoiceWorkSort.ReleaseDateNewToOld
+ };
+
+ _ = Update(Value);
+ }
+ else if (item.Key == "Favorite-Upcoming")
+ {
+ Value = new()
+ {
+ SaleStatus = SaleStatus.Upcoming,
+ CircleStatus = CircleStatus.Favorited,
+ SupportedLanguages = [Language.Japanese, Language.English],
+ Locale = Locale.English,
+ Sort = VoiceWorkSort.MostFavorited
+ };
+
+ _ = Update(Value);
+ }
+ else if (item.Key == "Popular-ThisWeek")
+ {
+ Value = new()
+ {
+ SaleStatus = SaleStatus.Available,
+ SupportedLanguages = [Language.Japanese, Language.English],
+ Locale = Locale.English,
+ Sort = VoiceWorkSort.BestSelling,
+ ReleaseDateStart = DateOnly.FromDateTime(DateTime.Now.AddDays(-8))
+ };
+
+ _ = Update(Value);
+ }
+ else if (item.Key == "Popular-ThisMonth")
+ {
+ Value = new()
+ {
+ SaleStatus = SaleStatus.Available,
+ SupportedLanguages = [Language.Japanese, Language.English],
+ Locale = Locale.English,
+ Sort = VoiceWorkSort.BestSelling,
+ ReleaseDateStart = DateOnly.FromDateTime(DateTime.Now.AddDays(-29))
+ };
+
+ _ = Update(Value);
+ }
+ else if (item.Key == "Popular-ThisYear")
+ {
+ Value = new()
+ {
+ SaleStatus = SaleStatus.Available,
+ SupportedLanguages = [Language.Japanese, Language.English],
+ Locale = Locale.English,
+ Sort = VoiceWorkSort.BestSelling,
+ ReleaseDateStart = DateOnly.FromDateTime(DateTime.Now.AddDays(-366))
+ };
+
+ _ = Update(Value);
+ }
+ }
}
\ No newline at end of file
diff --git a/JSMR.UI.Blazor/Pages/Home.razor b/JSMR.UI.Blazor/Pages/Home.razor
index 115c502..8b21efe 100644
--- a/JSMR.UI.Blazor/Pages/Home.razor
+++ b/JSMR.UI.Blazor/Pages/Home.razor
@@ -6,17 +6,17 @@
Home
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
@code {
VoiceWorkSearchResult[]? availableVoiceWorks;
@@ -29,9 +29,6 @@
_ = LoadUpcomingVoiceWorksAsync();
_ = LoadAnnouncedVoiceWorksAsync();
- // availableVoiceWorks = await GetAvailableVoiceWorksAsync();
- // upcomingVoiceWorks = await GetUpcomingVoiceWorksAsync();
-
return Task.CompletedTask;
}
@@ -55,7 +52,7 @@
var result = await Client.SearchAsync(request);
- availableVoiceWorks = result.Results.Items;
+ availableVoiceWorks = result?.Results.Items;
await InvokeAsync(StateHasChanged);
}
@@ -80,7 +77,7 @@
var result = await Client.SearchAsync(request);
- upcomingVoiceWorks = result.Results.Items;
+ upcomingVoiceWorks = result?.Results.Items;
await InvokeAsync(StateHasChanged);
}
@@ -104,7 +101,7 @@
var result = await Client.SearchAsync(request);
- announcedVoiceWorks = result.Results.Items;
+ announcedVoiceWorks = result?.Results.Items;
await InvokeAsync(StateHasChanged);
}
diff --git a/JSMR.UI.Blazor/wwwroot/css/app.css b/JSMR.UI.Blazor/wwwroot/css/app.css
index af3a8f0..4edfa43 100644
--- a/JSMR.UI.Blazor/wwwroot/css/app.css
+++ b/JSMR.UI.Blazor/wwwroot/css/app.css
@@ -116,6 +116,12 @@ code {
/* Custom */
/* Search Filters */
+.search-toolbar {
+ display: flex;
+ justify-content: flex-end;
+ gap: 1em;
+}
+
.search-filter-control-container {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
diff --git a/JSMR.UI.Blazor/wwwroot/css/bit-blazor.css b/JSMR.UI.Blazor/wwwroot/css/bit-blazor.css
index 63843d4..33b0b3b 100644
--- a/JSMR.UI.Blazor/wwwroot/css/bit-blazor.css
+++ b/JSMR.UI.Blazor/wwwroot/css/bit-blazor.css
@@ -1,3 +1,12 @@
+.bit-tfl {
+ width: 100%;
+}
+
+.bit-tfl-inp {
+
+ font-family: var(--font-family);
+}
+
.bit-tfl-inp,
.bit-drp-wrp,
.bit-dtp-wrp {
@@ -65,4 +74,10 @@
.bit-drp-pre, .bit-drp-suf {
background: rgb(57, 79, 94);
+}
+
+.bit-pvt-cct {
+ font-weight: inherit;
+ font-size: inherit;
+ color: inherit;
}
\ No newline at end of file