...cleanup
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
@page "/agents"
|
||||
@using Chrono.Model
|
||||
|
||||
<PageTitle>Agents</PageTitle>
|
||||
|
||||
@@ -29,7 +28,8 @@
|
||||
<GridColumn Field="@nameof(CardData.Name)" Title="Card" Width="220px">
|
||||
<Template>
|
||||
<div class="agent-name-cell">
|
||||
<img src="@(((CardData)context).ImagePath)" alt="@(((CardData)context).Name)" class="agent-thumb"/>
|
||||
<img src="@(((CardData)context).ImagePath)" alt="@(((CardData)context).Name)"
|
||||
class="agent-thumb"/>
|
||||
<span>@(((CardData)context).Name)</span>
|
||||
</div>
|
||||
</Template>
|
||||
@@ -55,4 +55,5 @@
|
||||
.ThenBy(c => c.Name)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
@page "/cards"
|
||||
@using Chrono.Model
|
||||
|
||||
<PageTitle>Card Gallery</PageTitle>
|
||||
|
||||
@@ -27,7 +26,8 @@
|
||||
<div class="filter-bar">
|
||||
<div class="search-wrapper">
|
||||
<i class="bi bi-search search-icon"></i>
|
||||
<input @bind="search" @bind:event="oninput" class="form-control search-input" placeholder="Search cards by name or description..." />
|
||||
<input @bind="search" @bind:event="oninput" class="form-control search-input"
|
||||
placeholder="Search cards by name or description..."/>
|
||||
@if (search.Length > 0)
|
||||
{
|
||||
<button class="search-clear" @onclick="ClearSearch"><i class="bi bi-x-lg"></i></button>
|
||||
@@ -42,7 +42,7 @@
|
||||
</select>
|
||||
<select @bind="costFilter" class="form-select filter-select">
|
||||
<option value="">All Costs</option>
|
||||
@for (int i = 0; i <= 12; i++)
|
||||
@for (var i = 0; i <= 12; i++)
|
||||
{
|
||||
<option value="@i">@i</option>
|
||||
}
|
||||
@@ -89,7 +89,7 @@
|
||||
@if (filteredCards.Any())
|
||||
{
|
||||
<div class="card-grid">
|
||||
@{ int idx = 0; }
|
||||
@{ var idx = 0; }
|
||||
@foreach (var card in filteredCards)
|
||||
{
|
||||
<div class="card-cell @(selectedCard == card ? "selected" : "")"
|
||||
@@ -98,14 +98,15 @@
|
||||
<div class="card-image-wrapper">
|
||||
<div class="card-shimmer"></div>
|
||||
<img src="@card.ImagePath" alt="@card.Name" loading="lazy"
|
||||
onerror="this.src='data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 width=%22200%22 height=%22280%22><rect fill=%22%23222244%22 width=%22200%22 height=%22280%22/><text fill=%22%23686888%22 font-size=%2214%22 x=%22100%22 y=%22140%22 text-anchor=%22middle%22 dominant-baseline=%22middle%22>No Image</text></svg>'" />
|
||||
onerror="this.src='data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 width=%22200%22 height=%22280%22><rect fill=%22%23222244%22 width=%22200%22 height=%22280%22/><text fill=%22%23686888%22 font-size=%2214%22 x=%22100%22 y=%22140%22 text-anchor=%22middle%22 dominant-baseline=%22middle%22>No Image</text></svg>'"/>
|
||||
@if (card.Cost.HasValue)
|
||||
{
|
||||
<div class="card-cost-badge">@card.Cost</div>
|
||||
}
|
||||
@if (card.HasImmortalize)
|
||||
{
|
||||
<div class="card-immortalize-badge" title="Immortalizes"><i class="bi bi-star-fill"></i></div>
|
||||
<div class="card-immortalize-badge" title="Immortalizes"><i class="bi bi-star-fill"></i>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
<div class="card-label">
|
||||
@@ -134,13 +135,14 @@
|
||||
<button class="detail-close" @onclick="CloseDetail"><i class="bi bi-x-lg"></i></button>
|
||||
<div class="detail-layout">
|
||||
<div class="detail-image">
|
||||
<img src="@selectedCard.ImagePath" alt="@selectedCard.Name" />
|
||||
<img src="@selectedCard.ImagePath" alt="@selectedCard.Name"/>
|
||||
</div>
|
||||
<div class="detail-info">
|
||||
<div class="detail-header">
|
||||
<h2>@selectedCard.Name</h2>
|
||||
<div class="detail-meta">
|
||||
<span class="meta-badge category @selectedCard.Category?.ToLowerInvariant()">@selectedCard.Category</span>
|
||||
<span
|
||||
class="meta-badge category @selectedCard.Category?.ToLowerInvariant()">@selectedCard.Category</span>
|
||||
@if (selectedCard.Cost.HasValue)
|
||||
{
|
||||
<span class="meta-badge cost"><i class="bi bi-lightning-fill"></i> @selectedCard.Cost</span>
|
||||
@@ -249,14 +251,40 @@
|
||||
);
|
||||
}
|
||||
|
||||
private void SetCategory(string cat) => categoryFilter = categoryFilter == cat ? "" : cat;
|
||||
private void ClearCategoryFilter() => categoryFilter = "";
|
||||
private void ClearFactionFilter() => factionFilter = "";
|
||||
private void ClearCostFilter() => costFilter = "";
|
||||
private void ClearSearch() => search = "";
|
||||
private void SetCategory(string cat)
|
||||
{
|
||||
categoryFilter = categoryFilter == cat ? "" : cat;
|
||||
}
|
||||
|
||||
private void SelectCard(CardData card) => selectedCard = card;
|
||||
private void CloseDetail() => selectedCard = null;
|
||||
private void ClearCategoryFilter()
|
||||
{
|
||||
categoryFilter = "";
|
||||
}
|
||||
|
||||
private void ClearFactionFilter()
|
||||
{
|
||||
factionFilter = "";
|
||||
}
|
||||
|
||||
private void ClearCostFilter()
|
||||
{
|
||||
costFilter = "";
|
||||
}
|
||||
|
||||
private void ClearSearch()
|
||||
{
|
||||
search = "";
|
||||
}
|
||||
|
||||
private void SelectCard(CardData card)
|
||||
{
|
||||
selectedCard = card;
|
||||
}
|
||||
|
||||
private void CloseDetail()
|
||||
{
|
||||
selectedCard = null;
|
||||
}
|
||||
|
||||
private void ClearFilters()
|
||||
{
|
||||
@@ -265,4 +293,5 @@
|
||||
factionFilter = "";
|
||||
costFilter = "";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -269,8 +269,12 @@
|
||||
}
|
||||
|
||||
@keyframes shimmer {
|
||||
0% { background-position: -200% 0; }
|
||||
100% { background-position: 200% 0; }
|
||||
0% {
|
||||
background-position: -200% 0;
|
||||
}
|
||||
100% {
|
||||
background-position: 200% 0;
|
||||
}
|
||||
}
|
||||
|
||||
.card-image-wrapper img {
|
||||
@@ -404,8 +408,12 @@
|
||||
}
|
||||
|
||||
@keyframes fade-in {
|
||||
from { opacity: 0; }
|
||||
to { opacity: 1; }
|
||||
from {
|
||||
opacity: 0;
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.card-detail {
|
||||
@@ -511,7 +519,8 @@
|
||||
border: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.meta-badge.category { }
|
||||
.meta-badge.category {
|
||||
}
|
||||
|
||||
.meta-badge.category.agent {
|
||||
background: rgba(79, 195, 247, 0.15);
|
||||
|
||||
Reference in New Issue
Block a user