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
	);
}