Updated on 2026-08-14

This commit is contained in:
Tangem 2025-10-01 14:18:28 +02:00
parent 8d6992ad24
commit 646fe2d349
13 changed files with 72 additions and 32 deletions

View file

@ -67,4 +67,6 @@ internal interface StakingClickIntents : AmountScreenClickIntents {
fun openTokenDetails(cryptoCurrency: CryptoCurrency)
fun showPrimaryClickAlert()
fun onOpenLearnMoreAboutApproveClick()
}

View file

@ -16,6 +16,7 @@ import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.navigation.share.ShareManager
import com.tangem.core.navigation.url.UrlOpener
import com.tangem.core.ui.format.bigdecimal.crypto
import com.tangem.core.ui.format.bigdecimal.format
import com.tangem.core.ui.haptic.TangemHapticEffect
@ -73,6 +74,7 @@ import com.tangem.features.staking.impl.presentation.state.utils.checkAndCalcula
import com.tangem.features.staking.impl.presentation.state.utils.isSingleAction
import com.tangem.features.staking.impl.presentation.state.utils.withStubUnstakeAction
import com.tangem.utils.Provider
import com.tangem.utils.TangemLinks.RESOURCE_TO_LEARN_ABOUT_APPROVING_IN_SWAP
import com.tangem.utils.coroutines.*
import com.tangem.utils.extensions.isSingleItem
import com.tangem.utils.extensions.orZero
@ -123,6 +125,7 @@ internal class StakingModel @Inject constructor(
private val getActionRequirementAmountUseCase: GetActionRequirementAmountUseCase,
private val paramsInterceptorHolder: ParamsInterceptorHolder,
private val shareManager: ShareManager,
private val urlOpener: UrlOpener,
@DelayedWork private val coroutineScope: CoroutineScope,
private val innerRouter: InnerStakingRouter,
appRouter: AppRouter,
@ -927,6 +930,10 @@ internal class StakingModel @Inject constructor(
)
}
override fun onOpenLearnMoreAboutApproveClick() {
urlOpener.openUrl(RESOURCE_TO_LEARN_ABOUT_APPROVING_IN_SWAP)
}
private suspend fun setupApprovalNeeded() {
val approval = StakingIntegrationID.create(currencyId = cryptoCurrencyStatus.currency.id)?.approval
?: StakingApproval.Empty

View file

@ -76,4 +76,6 @@ internal object StakingClickIntentsStub : StakingClickIntents {
override fun onActiveStakeAnalytic() {}
override fun showPrimaryClickAlert() {}
override fun onOpenLearnMoreAboutApproveClick() {}
}

View file

@ -77,6 +77,7 @@ internal class ShowApprovalBottomSheetTransformer(
dialogText = resourceReference(R.string.give_permission_staking_footer),
footerText = resourceReference(R.string.staking_give_permission_fee_footer),
onChangeApproveType = prevState.clickIntents::onApproveTypeChange,
onOpenLearnMoreAboutApproveClick = {},
),
walletInteractionIcon = walletInterationIcon(userWallet),
onCancel = onDismiss,