UI/Components/CurrencyDisplay.razor
@using Sandbox.UI;
@inherits Panel
@namespace PlanetMeat
<root>
@{
var account = Account;
<SvgPanel class="symbol" Src=@(account.Currency.ImagePath) />
@if (Amount is double a)
{
var amt = LargeNumberString.ToCompact(a);
if (Mode == "cost")
{
var funds = account.Funds;
<span class="amount">
<span class="cost @(funds < a ? "unaffordable" : "affordable")">
@Prefix@amt
</span>
</span>
}
else
{
<span class="amount">@Prefix@amt</span>
}
}
else
{
<span class="amount">@Prefix@(account.DisplayText)</span>
}
}
</root>
@code
{
public string AccountId { get; set; } = "";
private Bank.Account Account => Bank.Current.GetAccount(AccountId);
public string Prefix { get; set; } = "";
public double? Amount { get; set; } = null;
public string Mode { get; set; } = "";
protected override int BuildHash() => System.HashCode.Combine(
AccountId,
Account?.Hash ?? 0,
Amount
);
}