fix: highlighting new positions on balances table (#433)

* fix: highlighting new positions on balances table

* Update src/components/Account/AccountBalancesTable/useAccountBalanceData.tsx

Co-authored-by: Yusuf Seyrek <yusufseyrek@users.noreply.github.com>

* fix: according to comments

---------

Co-authored-by: Yusuf Seyrek <yusufseyrek@users.noreply.github.com>
This commit is contained in:
Linkie Link 2023-09-06 14:57:28 +02:00 committed by GitHub
parent f0f400d8f7
commit 5ff848bca7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 11 deletions

View File

@ -8,10 +8,10 @@ export function getAssetAccountBalanceRow(
prices: BNCoin[],
position: BNCoin,
apy: number,
prev: BNCoin,
prev?: BNCoin,
): AccountBalanceRow {
const { amount, denom } = position
const amountChange = position.amount.minus(prev.amount)
const amountChange = !prev ? position.amount : position.amount.minus(prev.amount)
return {
type,
@ -28,12 +28,13 @@ export function getAssetAccountBalanceRow(
export function getVaultAccountBalanceRow(
vault: DepositedVault,
apy: number,
prev: DepositedVault,
prev?: DepositedVault,
): AccountBalanceRow {
const { name } = vault
const previous = prev || vault
const totalValue = vault.values.primary.plus(vault.values.secondary)
const prevTotalValue = prev.values.primary.plus(prev.values.secondary)
const amountChange = totalValue.minus(prevTotalValue)
const prevTotalValue = previous.values.primary.plus(previous.values.secondary)
const amountChange = !prev ? totalValue : totalValue.minus(prevTotalValue)
return {
type: 'vault',
@ -59,4 +60,4 @@ export function getAmountChangeColor(
if (amount.isLessThan(0)) return 'text-loss'
return ''
}
}

View File

@ -35,7 +35,7 @@ export default function useAccountBalanceData(props: Props) {
if (!asset) return
const apy = 0
const prevDeposit = updatedAccount
? account?.deposits.find((position) => position.denom === deposit.denom) ?? deposit
? account?.deposits.find(byDenom(deposit.denom))
: deposit
deposits.push(getAssetAccountBalanceRow('deposits', asset, prices, deposit, apy, prevDeposit))
})
@ -48,7 +48,7 @@ export default function useAccountBalanceData(props: Props) {
)
const apy = convertAprToApy(apr, 365)
const prevLending = updatedAccount
? account?.lends.find((position) => position.denom === lending.denom) ?? lending
? account?.lends.find((position) => position.denom === lending.denom)
: lending
return getAssetAccountBalanceRow('lending', asset, prices, lending, apy, prevLending)
})
@ -56,7 +56,7 @@ export default function useAccountBalanceData(props: Props) {
const vaults = accountVaults.map((vault) => {
const apy = (vault.apy ?? 0) * 100
const prevVault = updatedAccount
? account?.vaults.find((position) => position.name === vault.name) ?? vault
? account?.vaults.find((position) => position.name === vault.name)
: vault
return getVaultAccountBalanceRow(vault, apy, prevVault)
})
@ -65,10 +65,10 @@ export default function useAccountBalanceData(props: Props) {
const asset = ASSETS.find(byDenom(debt.denom)) ?? ASSETS[0]
const apy = borrowingData.find((market) => market.asset.denom === debt.denom)?.borrowRate ?? 0
const prevDebt = updatedAccount
? account?.debts.find((position) => position.denom === debt.denom) ?? debt
? account?.debts.find((position) => position.denom === debt.denom)
: debt
return getAssetAccountBalanceRow('borrowing', asset, prices, debt, apy * -100, prevDebt)
})
return [...deposits, ...lends, ...vaults, ...debts]
}, [prices, account, updatedAccount, borrowingData, lendingData])
}
}