From d1ccd77c4ccbd558734294ff4bab3d032ab5bd9a Mon Sep 17 00:00:00 2001 From: Finnian Jacobson-Schulte <140328381+finnian0826@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:28:43 -0600 Subject: [PATCH] feedback --- src/earn/EarnActivePools.tsx | 14 +++++++------- src/earn/hooks.test.tsx | 13 +++++++++++++ 2 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 src/earn/hooks.test.tsx diff --git a/src/earn/EarnActivePools.tsx b/src/earn/EarnActivePools.tsx index b16a64c050b..5015fadca02 100644 --- a/src/earn/EarnActivePools.tsx +++ b/src/earn/EarnActivePools.tsx @@ -6,6 +6,7 @@ import AppAnalytics from 'src/analytics/AppAnalytics' import { EarnEvents } from 'src/analytics/Events' import { formatValueToDisplay } from 'src/components/TokenDisplay' import Touchable from 'src/components/Touchable' +import { useEarnPositionBalanceValues } from 'src/earn/hooks' import { EarnTabType } from 'src/earn/types' import { useDollarsToLocalAmount } from 'src/localCurrency/hooks' import { getLocalCurrencySymbol } from 'src/localCurrency/selectors' @@ -26,13 +27,12 @@ export default function EarnActivePools() { () => pools.filter((pool) => new BigNumber(pool.balance).gt(0)).length, [pools] ) - const totalSuppliedValueUsd = useMemo( - () => - pools.reduce( - (acc, pool) => acc.plus(new BigNumber(pool.balance).times(new BigNumber(pool.priceUsd))), - new BigNumber(0) ?? null - ), - [pools] + const totalSuppliedValueUsd = pools.reduce( + (acc, pool) => { + const { poolBalanceInUsd } = useEarnPositionBalanceValues({ pool }) + return acc.plus(poolBalanceInUsd) + }, + new BigNumber(0) ?? null ) const totalSuppliedValue = useDollarsToLocalAmount(totalSuppliedValueUsd) const totalSupplied = useMemo( diff --git a/src/earn/hooks.test.tsx b/src/earn/hooks.test.tsx new file mode 100644 index 00000000000..9654d9c61b3 --- /dev/null +++ b/src/earn/hooks.test.tsx @@ -0,0 +1,13 @@ +import BigNumber from 'bignumber.js' +import { useEarnPositionBalanceValues } from 'src/earn/hooks' +import { mockEarnPositions } from 'test/values' + +describe('useEarnPositionBalanceValues', () => { + it('should return the correct USD and depositToken crypto balances for a pool', () => { + const { poolBalanceInUsd, poolBalanceInDepositToken } = useEarnPositionBalanceValues({ + pool: { ...mockEarnPositions[0], balance: '100' }, + }) + expect(poolBalanceInUsd).toEqual(new BigNumber(120)) + expect(poolBalanceInDepositToken).toEqual(new BigNumber(110)) + }) +})