UNPKG

@ledgerhq/live-common

Version:
40 lines 1.99 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.useRightBalanceAsset = useRightBalanceAsset; const react_1 = require("react"); const bignumber_js_1 = __importDefault(require("bignumber.js")); const index_1 = require("@ledgerhq/asset-aggregation/assetAggregation/index"); const formatProviderResult = (providerCurrency, totalBalance, totalFiatValue) => ({ currency: providerCurrency, balance: totalBalance, fiatValue: totalFiatValue.toNumber(), }); function useRightBalanceAsset(assets, { useBalanceDeps, balanceItem, assetsMap, }) { const { flattenedAccounts, state, counterValueCurrency } = useBalanceDeps(); const grouped = (0, react_1.useMemo)(() => (0, index_1.groupAccountsByAsset)(flattenedAccounts, state, counterValueCurrency), [flattenedAccounts, state, counterValueCurrency]); return (0, react_1.useMemo)(() => { const balanceMap = new Map(); for (const [, { currencies, mainCurrency }] of assetsMap) { const { totalBalance, totalFiatValue, referenceCurrency } = (0, index_1.calculateProviderTotals)(currencies, grouped); const currencyToUse = referenceCurrency || mainCurrency; const balanceData = formatProviderResult(currencyToUse, totalBalance, totalFiatValue); balanceMap.set(mainCurrency.id, balanceData); } return assets.map(asset => { const balanceData = balanceMap.get(asset.id) || { currency: asset, balance: new bignumber_js_1.default(0), fiatValue: 0, }; return { ...asset, balanceData, rightElement: balanceItem(balanceData), }; }); }, [assets, assetsMap, balanceItem, grouped]); } //# sourceMappingURL=useRightBalanceAsset.js.map