import { useEffect, useState } from 'react'; import { DeriveBalancesAccount } from '@polkadot/api-derive/types'; import { useApi } from '../useApi.js'; import { useBlockHeader } from './useBlockHeader.js'; export interface WithAddress { address: string | undefined; } export const useBalance = ( account?: WithAddress, ): DeriveBalancesAccount | undefined => { const [balance, setBalance] = useState(); const { blockNumber } = useBlockHeader(); const { api } = useApi(); useEffect(() => { if (!api || !account || !account.address) return; api.derive.balances.account(account.address).then(setBalance).catch( console.error, ); }, [blockNumber, account]); return balance; };