Updated on 2026-08-14

This commit is contained in:
Tangem 2025-12-23 17:06:36 +05:00
parent 98fa3b5ce5
commit 5bb97e290d
3 changed files with 33 additions and 15 deletions

View file

@ -20,6 +20,8 @@ import com.tangem.domain.onramp.model.OnrampSource
import com.tangem.domain.redux.ReduxStateHolder import com.tangem.domain.redux.ReduxStateHolder
import com.tangem.domain.tokens.legacy.TradeCryptoAction import com.tangem.domain.tokens.legacy.TradeCryptoAction
import com.tangem.domain.tokens.model.TokenActionsState import com.tangem.domain.tokens.model.TokenActionsState
import com.tangem.domain.tokens.model.details.NavigationAction
import com.tangem.domain.yield.supply.usecase.YieldSupplyEnterStatusUseCase
import com.tangem.features.markets.impl.R import com.tangem.features.markets.impl.R
import com.tangem.features.markets.portfolio.impl.loader.PortfolioData import com.tangem.features.markets.portfolio.impl.loader.PortfolioData
import com.tangem.features.markets.portfolio.impl.ui.state.TokenActionsBSContentUM import com.tangem.features.markets.portfolio.impl.ui.state.TokenActionsBSContentUM
@ -41,6 +43,7 @@ internal class TokenActionsHandler @AssistedInject constructor(
private val isDemoCardUseCase: IsDemoCardUseCase, private val isDemoCardUseCase: IsDemoCardUseCase,
private val messageSender: UiMessageSender, private val messageSender: UiMessageSender,
private val shareManager: ShareManager, private val shareManager: ShareManager,
private val yieldSupplyEnterStatusUseCase: YieldSupplyEnterStatusUseCase,
) { ) {
private val disabledActionsInDemoMode = buildSet { private val disabledActionsInDemoMode = buildSet {
@ -186,22 +189,37 @@ internal class TokenActionsHandler @AssistedInject constructor(
val (userWalletId, cryptoCurrencyStatus) = cryptoCurrencyData.let { currencyData -> val (userWalletId, cryptoCurrencyStatus) = cryptoCurrencyData.let { currencyData ->
currencyData.userWallet.walletId to currencyData.status currencyData.userWallet.walletId to currencyData.status
} }
if (cryptoCurrencyStatus.value.yieldSupplyStatus?.isActive == true) { val tokenEnterStatus = yieldSupplyEnterStatusUseCase(userWalletId, cryptoCurrencyStatus).getOrNull()
router.push( val isActiveYield = cryptoCurrencyStatus.value.yieldSupplyStatus?.isActive == true
AppRoute.YieldSupplyActive(
when {
tokenEnterStatus != null -> router.push(
AppRoute.CurrencyDetails(
userWalletId = userWalletId, userWalletId = userWalletId,
cryptoCurrency = cryptoCurrencyStatus.currency, currency = cryptoCurrencyStatus.currency,
apy = yieldSupplyApy, navigationAction = NavigationAction.YieldSupply(
), isActive = isActiveYield,
) ),
} else {
router.push(
AppRoute.YieldSupplyPromo(
userWalletId = userWalletId,
cryptoCurrency = cryptoCurrencyStatus.currency,
apy = yieldSupplyApy,
), ),
) )
isActiveYield -> {
router.push(
AppRoute.YieldSupplyActive(
userWalletId = userWalletId,
cryptoCurrency = cryptoCurrencyStatus.currency,
apy = yieldSupplyApy,
),
)
}
else -> {
router.push(
AppRoute.YieldSupplyPromo(
userWalletId = userWalletId,
cryptoCurrency = cryptoCurrencyStatus.currency,
apy = yieldSupplyApy,
),
)
}
} }
} }

View file

@ -44,7 +44,7 @@ internal sealed class QuickActionUM(
data class YieldMode( data class YieldMode(
private val apy: String, private val apy: String,
) : QuickActionUM( ) : QuickActionUM(
title = resourceReference(R.string.yield_module_start_earning), title = resourceReference(R.string.common_yield_mode),
description = resourceReference(R.string.yield_module_main_screen_promo_banner_message, wrappedList(apy)), description = resourceReference(R.string.yield_module_main_screen_promo_banner_message, wrappedList(apy)),
icon = R.drawable.ic_analytics_up_mini_24, icon = R.drawable.ic_analytics_up_mini_24,
) )

View file

@ -48,7 +48,7 @@ internal data class TokenActionsBSContentUM(
iconRes = R.drawable.ic_staking_24, iconRes = R.drawable.ic_staking_24,
), ),
YieldMode( YieldMode(
text = resourceReference(R.string.yield_module_start_earning), text = resourceReference(R.string.common_yield_mode),
iconRes = R.drawable.ic_analytics_up_mini_24, iconRes = R.drawable.ic_analytics_up_mini_24,
), ),
; ;