Added voice work image fallback. Added tag/creator/circle chip components. Updated voice work search response to include favorite/blacklisted flags for tags/creators/circles.
This commit is contained in:
43
JSMR.UI.Blazor/Components/Chips/CircleChip.razor
Normal file
43
JSMR.UI.Blazor/Components/Chips/CircleChip.razor
Normal file
@@ -0,0 +1,43 @@
|
||||
@using JSMR.Application.Tags.Queries.Search.Contracts
|
||||
@using JSMR.Application.VoiceWorks.Queries.Search
|
||||
@using JSMR.UI.Blazor.Enums
|
||||
@using JSMR.UI.Blazor.Filters
|
||||
@using JSMR.UI.Blazor.Services
|
||||
@using Microsoft.AspNetCore.WebUtilities
|
||||
|
||||
<Chip Graphic="Graphic.Circle" Color="@GetColor()" Varient="ElementVarient.Outlined" Tone="@GetTone()" Url="@GetUrl()" Target="_blank">@Circle.Name</Chip>
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public required VoiceWorkCircleItem Circle { get; set; }
|
||||
|
||||
private string GetUrl()
|
||||
{
|
||||
return $"https://www.dlsite.com/maniax/circle/profile/=/maker_id/{Circle.MakerId}.html";
|
||||
}
|
||||
|
||||
private ColorVarient GetColor()
|
||||
{
|
||||
if (Circle.IsFavorite)
|
||||
{
|
||||
return ColorVarient.Mint;
|
||||
}
|
||||
|
||||
if (Circle.IsBlacklisted)
|
||||
{
|
||||
return ColorVarient.Pink;
|
||||
}
|
||||
|
||||
return ColorVarient.Secondary;
|
||||
}
|
||||
|
||||
private ToneVarient GetTone()
|
||||
{
|
||||
if (Circle.IsFavorite || Circle.IsBlacklisted)
|
||||
{
|
||||
return ToneVarient.Tint;
|
||||
}
|
||||
|
||||
return ToneVarient.None;
|
||||
}
|
||||
}
|
||||
43
JSMR.UI.Blazor/Components/Chips/CreatorChip.razor
Normal file
43
JSMR.UI.Blazor/Components/Chips/CreatorChip.razor
Normal file
@@ -0,0 +1,43 @@
|
||||
@using JSMR.Application.Tags.Queries.Search.Contracts
|
||||
@using JSMR.Application.VoiceWorks.Queries.Search
|
||||
@using JSMR.UI.Blazor.Enums
|
||||
@using JSMR.UI.Blazor.Filters
|
||||
@using JSMR.UI.Blazor.Services
|
||||
@using Microsoft.AspNetCore.WebUtilities
|
||||
|
||||
<Chip Graphic="Graphic.Person" IconVarient="IconVarient.Fill" Color="@GetColor()" Varient="ElementVarient.Outlined" Tone="@GetTone()" Url="@GetUrl()" Target="_blank">@Creator.Name</Chip>
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public required VoiceWorkCreatorItem Creator { get; set; }
|
||||
|
||||
private string GetUrl()
|
||||
{
|
||||
return $"https://www.dlsite.com/maniax/fsr/=/keyword_creater/{Creator.Name}";
|
||||
}
|
||||
|
||||
private ColorVarient GetColor()
|
||||
{
|
||||
if (Creator.IsFavorite)
|
||||
{
|
||||
return ColorVarient.Mint;
|
||||
}
|
||||
|
||||
if (Creator.IsBlacklisted)
|
||||
{
|
||||
return ColorVarient.Pink;
|
||||
}
|
||||
|
||||
return ColorVarient.Secondary;
|
||||
}
|
||||
|
||||
private ToneVarient GetTone()
|
||||
{
|
||||
if (Creator.IsFavorite || Creator.IsBlacklisted)
|
||||
{
|
||||
return ToneVarient.Tint;
|
||||
}
|
||||
|
||||
return ToneVarient.None;
|
||||
}
|
||||
}
|
||||
54
JSMR.UI.Blazor/Components/Chips/TagChip.razor
Normal file
54
JSMR.UI.Blazor/Components/Chips/TagChip.razor
Normal file
@@ -0,0 +1,54 @@
|
||||
@using JSMR.Application.Tags.Queries.Search.Contracts
|
||||
@using JSMR.Application.VoiceWorks.Queries.Search
|
||||
@using JSMR.UI.Blazor.Enums
|
||||
@using JSMR.UI.Blazor.Filters
|
||||
@using JSMR.UI.Blazor.Services
|
||||
@using Microsoft.AspNetCore.WebUtilities
|
||||
|
||||
<Chip Graphic="Graphic.Tag" Color="@GetColor()" Varient="ElementVarient.Outlined" Tone="@GetTone()" Click="@OnClick">@Tag.Name</Chip>
|
||||
|
||||
@code {
|
||||
[Inject]
|
||||
protected NavigationManager NavigationManager { get; set; } = default!;
|
||||
|
||||
[Parameter]
|
||||
public required VoiceWorkTagItem Tag { get; set; }
|
||||
|
||||
private ColorVarient GetColor()
|
||||
{
|
||||
if (Tag.IsFavorite)
|
||||
{
|
||||
return ColorVarient.Mint;
|
||||
}
|
||||
|
||||
if (Tag.IsBlacklisted)
|
||||
{
|
||||
return ColorVarient.Pink;
|
||||
}
|
||||
|
||||
return ColorVarient.Secondary;
|
||||
}
|
||||
|
||||
private ToneVarient GetTone()
|
||||
{
|
||||
if (Tag.IsFavorite || Tag.IsBlacklisted)
|
||||
{
|
||||
return ToneVarient.Tint;
|
||||
}
|
||||
|
||||
return ToneVarient.None;
|
||||
}
|
||||
|
||||
private void OnClick()
|
||||
{
|
||||
VoiceWorkFilterState state = new()
|
||||
{
|
||||
TagIds = [Tag.TagId]
|
||||
};
|
||||
|
||||
string basePath = new Uri(NavigationManager.Uri).GetLeftPart(UriPartial.Authority);
|
||||
string uri = QueryHelpers.AddQueryString($"{basePath}/voiceworks", state.ToQuery());
|
||||
|
||||
NavigationManager.NavigateTo(uri);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user