app/BTCPayApp.UI/Components/InvoiceStatusDisplay.razor
2024-11-07 14:08:09 +01:00

34 lines
1.1 KiB
Plaintext

@using BTCPayServer.Client.Models
<div @attributes="InputAttributes" class="@CssClass">
@if (Invoice.Archived)
{
<span class="badge bg-warning">Archived</span>
}
<span class="badge badge-@Invoice.Status.ToString().ToLower()">
@GetInvoiceStatus(Invoice.Status, Invoice.AdditionalStatus)
</span>
</div>
@code {
[Parameter, EditorRequired]
public InvoiceData Invoice { get; set; } = null!;
[Parameter(CaptureUnmatchedValues = true)]
public Dictionary<string, object>? InputAttributes { get; set; }
private string GetInvoiceStatus(InvoiceStatus status, InvoiceExceptionStatus exceptionStatus)
{
return status + exceptionStatus switch
{
InvoiceExceptionStatus.PaidOver => " (paid over)",
InvoiceExceptionStatus.PaidLate => " (paid late)",
InvoiceExceptionStatus.PaidPartial => " (paid partial)",
InvoiceExceptionStatus.Marked => " (marked)",
_ => ""
};
}
private string CssClass => $"d-inline-flex align-items-center gap-2 {(InputAttributes?.ContainsKey("class") is true ? InputAttributes["class"] : "")}".Trim();
}