import { useBalances, useVault } from '@sunnyside-io/privacy-boost-react';
function BalanceList() {
const { balances, loading, lastSynced, tokenCount } = useBalances();
const { refreshBalances } = useVault();
const [syncing, setSyncing] = useState(false);
const handleRefresh = async () => {
setSyncing(true);
await refreshBalances();
setSyncing(false);
};
return (
<div>
<div className="header">
<h3>Balances ({tokenCount} tokens)</h3>
<button onClick={handleRefresh} disabled={syncing}>
{syncing ? 'Refreshing...' : 'Refresh'}
</button>
</div>
{lastSynced && (
<small>Last synced: {new Date(lastSynced).toLocaleTimeString()}</small>
)}
{loading ? (
<div>Loading...</div>
) : (
<table>
<thead>
<tr>
<th>Token</th>
<th>Shielded</th>
<th>Wallet</th>
</tr>
</thead>
<tbody>
{balances.map((balance) => (
<tr key={balance.tokenAddress}>
<td>{balance.symbol}</td>
<td>{balance.formattedShielded}</td>
<td>{balance.formattedWallet}</td>
</tr>
))}
</tbody>
</table>
)}
</div>
);
}