Updated on 2026-08-14

This commit is contained in:
Tangem 2025-11-13 19:58:22 +03:00
parent 6018cf0b71
commit f7b10f3ed5
31 changed files with 446 additions and 105 deletions

View file

@ -9,6 +9,7 @@ import com.tangem.features.staking.impl.presentation.state.BalanceState
import com.tangem.features.staking.impl.presentation.state.bottomsheet.InfoType
import java.math.BigDecimal
// TODO split this interface to click intents and other interaction events
@Suppress("TooManyFunctions")
internal interface StakingClickIntents : AmountScreenClickIntents {
@ -72,5 +73,7 @@ internal interface StakingClickIntents : AmountScreenClickIntents {
fun onActivateTonAccountNotificationClick()
fun onActivateTonAccountNotificationShow()
fun onActivateTonAccountClick()
}

View file

@ -953,6 +953,11 @@ internal class StakingModel @Inject constructor(
}
override fun onActivateTonAccountNotificationClick() {
analyticsEventHandler.send(
StakingAnalyticsEvent.UninitializedAddressScreen(
token = cryptoCurrencyStatus.currency.symbol,
),
)
modelScope.launch {
stateController.update(
ShowTonInitializeBottomSheetTransformer(
@ -1006,7 +1011,20 @@ internal class StakingModel @Inject constructor(
}
}
override fun onActivateTonAccountNotificationShow() {
analyticsEventHandler.send(
StakingAnalyticsEvent.UninitializedAddress(
token = cryptoCurrencyStatus.currency.symbol,
),
)
}
override fun onActivateTonAccountClick() {
analyticsEventHandler.send(
StakingAnalyticsEvent.ButtonActivate(
token = cryptoCurrencyStatus.currency.symbol,
),
)
modelScope.launch {
tonAccountInitializeTransaction?.let { transaction ->
sendTransactionUseCase.invoke(

View file

@ -81,5 +81,7 @@ internal object StakingClickIntentsStub : StakingClickIntents {
override fun onActivateTonAccountNotificationClick() {}
override fun onActivateTonAccountNotificationShow() {}
override fun onActivateTonAccountClick() {}
}

View file

@ -295,6 +295,7 @@ internal class AddStakingNotificationsTransformer(
val cryptoCurrencyNetworkIdValue = cryptoCurrencyStatusProvider().currency.network.rawId
if (isTon(cryptoCurrencyNetworkIdValue) && !isAccountInitialized) {
prevState.clickIntents.onActivateTonAccountNotificationShow()
add(
StakingNotification.Warning.InitializeTonAccount(
onInitializeClick = prevState.clickIntents::onActivateTonAccountNotificationClick,