Updated on 2026-08-14

This commit is contained in:
Tangem 2022-05-30 15:32:04 +03:00
parent ac25a445c6
commit b2cb46f21a
2 changed files with 8 additions and 7 deletions

View file

@ -2,8 +2,8 @@ package com.tangem.tap.features.wallet.redux.reducers
import com.tangem.blockchain.common.AmountType
import com.tangem.blockchain.common.Token
import com.tangem.blockchain.extensions.isAboveZero
import com.tangem.common.extensions.guard
import com.tangem.common.extensions.isZero
import com.tangem.tap.common.extensions.toFiatString
import com.tangem.tap.common.extensions.toFormattedCurrencyString
import com.tangem.tap.domain.getFirstToken
@ -108,7 +108,6 @@ class MultiWalletReducer {
}
val pendingTransactions = wallet.getPendingTransactions()
val tokenSendButton = action.amount.value?.isZero() == false && pendingTransactions.isEmpty()
val tokenPendingTransactions = pendingTransactions.filterByToken(action.token)
val tokenBalanceStatus = when {
tokenPendingTransactions.isNotEmpty() -> BalanceStatus.TransactionInProgress
@ -116,6 +115,8 @@ class MultiWalletReducer {
else -> BalanceStatus.VerifiedOnline
}
val tokenWalletData = state.getWalletData(currency)
val isTokenSendButtonEnabled = action.amount.isAboveZero() && pendingTransactions.isEmpty()
val newTokenWalletData = tokenWalletData?.copy(
currencyData = tokenWalletData.currencyData.copy(
status = tokenBalanceStatus,
@ -130,7 +131,7 @@ class MultiWalletReducer {
blockchainAmount = wallet.amounts[AmountType.Coin]?.value ?: BigDecimal.ZERO
),
pendingTransactions = pendingTransactions.removeUnknownTransactions(),
mainButton = WalletMainButton.SendButton(tokenSendButton),
mainButton = WalletMainButton.SendButton(isTokenSendButtonEnabled),
currency = Currency.Token(
token = action.token,
blockchain = action.blockchain.blockchain,

View file

@ -46,7 +46,7 @@ class OnWalletLoadedReducer {
)
val pendingTransactions = wallet.getPendingTransactions()
val coinSendButton = coinAmountValue?.isZero() == false && pendingTransactions.isEmpty()
val isCoinSendButtonEnabled = coinAmountValue?.isZero() == false && pendingTransactions.isEmpty()
val balanceStatus = if (pendingTransactions.isNotEmpty()) {
BalanceStatus.TransactionInProgress
} else {
@ -65,7 +65,7 @@ class OnWalletLoadedReducer {
fiatAmountFormatted = fiatAmount?.toFormattedFiatValue(fiatCurrency.symbol)
),
pendingTransactions = pendingTransactions.removeUnknownTransactions(),
mainButton = WalletMainButton.SendButton(coinSendButton),
mainButton = WalletMainButton.SendButton(isCoinSendButtonEnabled),
currency = Currency.fromBlockchainNetwork(blockchainNetwork),
tradeCryptoState = TradeCryptoState.from(exchangeManager, walletData),
)
@ -83,7 +83,7 @@ class OnWalletLoadedReducer {
val tokenFiatAmount =
tokenWalletData?.fiatRate?.let { rate -> tokenAmountValue?.toFiatValue(rate) }
val tokenSendButton = newWalletData.shouldEnableTokenSendButton()
val isTokenSendButtonEnabled = newWalletData.shouldEnableTokenSendButton()
&& tokenPendingTransactions.isEmpty()
tokenWalletData?.copy(
currencyData = tokenWalletData.currencyData.copy(
@ -98,7 +98,7 @@ class OnWalletLoadedReducer {
fiatAmountFormatted = tokenFiatAmount?.toFormattedFiatValue(fiatCurrency.code)
),
pendingTransactions = tokenPendingTransactions.removeUnknownTransactions(),
mainButton = WalletMainButton.SendButton(tokenSendButton),
mainButton = WalletMainButton.SendButton(isTokenSendButtonEnabled),
tradeCryptoState = TradeCryptoState.from(exchangeManager, tokenWalletData),
)
}