Updated on 2026-08-14
This commit is contained in:
parent
98fa3b5ce5
commit
5bb97e290d
3 changed files with 33 additions and 15 deletions
|
|
@ -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,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
),
|
),
|
||||||
;
|
;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue