Updated UI with BitBlazor components.

This commit is contained in:
2025-11-22 14:42:29 -05:00
parent 2418bd0a8f
commit 8490b49354
22 changed files with 552 additions and 68 deletions

View File

@@ -1,8 +1,9 @@
@using JSMR.Application.VoiceWorks.Queries.Search
@using JSMR.Domain.Enums
@using JSMR.UI.Blazor.Services
@using System.Globalization
<div class="j-card j-voice-work-card">
<div class=@GetCardClasses(Product)>
<div class="j-voice-work-image-container">
<JImage OverlayClass="j-voice-work-image-overlay" ImageClass="j-voice-work-image" Source="@ImageUrlProvider.GetImageUrl(Product, "main")"></JImage>
</div>
@@ -15,14 +16,14 @@
<MudChip T="string"
Href=@($"https://www.dlsite.com/maniax/circle/profile/=/maker_id/{Product.MakerId}.html")
Target="_blank"
Variant="Variant.Filled"
Variant="MudBlazor.Variant.Filled"
Icon="@Icons.Material.Outlined.Circle">@Product.Maker</MudChip>
@foreach (var creator in Product.Creators)
{
<MudChip T="string"
Href=@($"https://www.dlsite.com/maniax/fsr/=/keyword_creater/{creator.Name}")
Target="_blank"
Variant="Variant.Filled"
Variant="MudBlazor.Variant.Filled"
Icon="@Icons.Material.Filled.Person">@creator.Name</MudChip>
}
</span>
@@ -53,12 +54,26 @@
}
@* <div class="j-icon-2 j-icon-2-flag-@GetFlagClassSuffix(Product)"></div> *@
<div class="j-spacer"></div>
@if (Product.HasTrial || Product.HasChobit)
{
<div class="j-trial-container">
<div class="j-icon j-icon-headphones"></div>
</div>
}
<div class="j-product-indicators">
@if (Product.IsValid != true)
{
<div class="j-product-indicator j-product-indicator-invalid">
<div class="j-icon j-icon-warning-fill"></div>
</div>
}
@if (Product.Favorite)
{
<div class="j-product-indicator j-product-indicator-favorite">
<div class="j-icon j-icon-heart-fill"></div>
</div>
}
@if (Product.HasTrial || Product.HasChobit)
{
<div class="j-trial-container">
<div class="j-icon j-icon-headphones"></div>
</div>
}
</div>
</div>
</div>
@@ -66,6 +81,22 @@
[Parameter]
public required VoiceWorkSearchResult Product { get; set; }
private string GetCardClasses(VoiceWorkSearchResult voiceWork)
{
List<string> classNames = ["j-card", "j-voice-work-card"];
if (voiceWork.Status == (byte)VoiceWorkStatus.NewRelease)
{
classNames.Add("type-sale");
}
else if (voiceWork.Status == (byte)VoiceWorkStatus.NewAndUpcoming)
{
classNames.Add("type-new");
}
return string.Join(" ", classNames);
}
private string GetReleaseDateText(VoiceWorkSearchResult voiceWork)
{
if (voiceWork.SalesDate.HasValue)