interface BalanceHeaderProps {
walletName: string | undefined;
balanceBtc: number;
fiatRate: number;
fiatBalance: number;
currency: string;
onCurrencyChange: (currency: string) => void;
onSend: () => void;
onReceive: () => void;
onRefresh: () => void;
loading: boolean;
}
export default function BalanceHeader({
walletName,
balanceBtc,
fiatRate,
fiatBalance,
currency,
onCurrencyChange,
onSend,
onReceive,
onRefresh,
loading,
}: BalanceHeaderProps) {
return (
<header className="balance-header">
<div className="balance-group">
<div className="balance-btc">
<span className="balance-btc-value">{balanceBtc.toFixed(8)}</span>
<span className="balance-btc-unit">BTC</span>
</div>
{fiatRate > 0 && (
<div className="balance-fiat">
<span>≈ {fiatBalance.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })} {currency}</span>
<span className="balance-fiat-rate">
(${fiatRate.toLocaleString('en-US', { maximumFractionDigits: 0 })}/BTC)
</span>
</div>
)}
</div>
<div className="balance-wallet-name">
{walletName}
</div>
<div className="balance-actions">
<button className="btn btn-secondary btn-small" onClick={onReceive}>
↓ Receive
</button>
<button className="btn btn-primary btn-small" onClick={onSend}>
↑ Send
</button>
</div>
<button
className={`header-refresh ${loading ? 'spinning' : ''}`}
onClick={onRefresh}
disabled={loading}
title="Refresh"
>
↻
</button>
</header>
);
}