UNPKG

@suiware/kit

Version:

Opinionated React components and hooks for building Sui dApps.

55 lines (52 loc) 1.58 kB
import { __async } from './chunk-IQXHJV5O.mjs'; import { useCurrentAccount, useSuiClientQuery } from '@mysten/dapp-kit'; import { useEffect } from 'react'; import BigNumber from 'bignumber.js'; var formatAmount = (amount) => { if (amount == null) { return void 0; } let bn = new BigNumber(amount.toString()); bn = bn.shiftedBy(-9); return bn.decimalPlaces(2, BigNumber.ROUND_DOWN).toFormat(2); }; // src/hooks/useBalance.tsx var DEFAULT_REFETCH_INTERVAL = 3e3; var useBalance = ({ autoRefetch, autoRefetchInterval } = {}) => { const currentAccount = useCurrentAccount(); const { data, refetch, error } = useSuiClientQuery("getBalance", { owner: currentAccount == null ? void 0 : currentAccount.address }); useEffect(() => { if (autoRefetch == null || autoRefetch === false) { return; } const interval = setInterval( () => { if (currentAccount == null || !autoRefetch) { clearInterval(interval); return; } refetch(); }, autoRefetch && autoRefetchInterval != null ? autoRefetchInterval : DEFAULT_REFETCH_INTERVAL ); return () => { clearTimeout(interval); }; }, [refetch, autoRefetch, autoRefetchInterval, currentAccount]); return { balance: data ? formatAmount(data.totalBalance) : void 0, error, refetch: () => __async(null, null, function* () { refetch(); }) }; }; var useBalance_default = useBalance; export { useBalance_default }; //# sourceMappingURL=chunk-S6QX3QFH.mjs.map //# sourceMappingURL=chunk-S6QX3QFH.mjs.map