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