Files

52 lines
2.1 KiB
Plaintext

@using Shared.Services
@using Model
@inject CardPreviewService PreviewService
@if (PreviewService.IsVisible && PreviewService.HoveredCard != null)
{
<div class="card-preview-container" style="left: @(PreviewService.X + 20)px; top: @(PreviewService.Y - 100)px;">
<div class="card-preview-card">
<img src="@PreviewService.HoveredCard.ImagePath" alt="@PreviewService.HoveredCard.Name" class="preview-image" />
<div class="preview-overlay">
<div class="preview-name">@PreviewService.HoveredCard.Name</div>
<div class="preview-meta">
@if (PreviewService.HoveredCard.Cost.HasValue)
{
<span class="preview-cost"><i class="bi bi-lightning-fill"></i> @PreviewService.HoveredCard.Cost</span>
}
<span class="preview-category">@PreviewService.HoveredCard.Category</span>
</div>
@if (!string.IsNullOrEmpty(PreviewService.HoveredCard.Description))
{
<div class="preview-description">@PreviewService.HoveredCard.Description</div>
}
@if (PreviewService.HoveredCard.Attack.HasValue || PreviewService.HoveredCard.Health.HasValue)
{
<div class="preview-stats">
@if (PreviewService.HoveredCard.Attack.HasValue)
{
<span class="stat-item"><i class="bi bi-shield-shaded"></i> @PreviewService.HoveredCard.Attack</span>
}
@if (PreviewService.HoveredCard.Health.HasValue)
{
<span class="stat-item"><i class="bi bi-heart-fill"></i> @PreviewService.HoveredCard.Health</span>
}
</div>
}
</div>
</div>
</div>
}
@code {
protected override void OnInitialized()
{
PreviewService.OnChange += StateHasChanged;
}
public void Dispose()
{
PreviewService.OnChange -= StateHasChanged;
}
}