Updated on 2026-08-14
This commit is contained in:
parent
f88abf06b5
commit
c1a7434cbf
5 changed files with 35 additions and 1 deletions
|
|
@ -160,10 +160,20 @@ sealed class StakingAnalyticsEvent(
|
|||
),
|
||||
)
|
||||
|
||||
data class UnitializedAddress(val token: String) : StakingAnalyticsEvent(
|
||||
data class UninitializedAddress(val token: String) : StakingAnalyticsEvent(
|
||||
event = "Notice - Uninitialized Address",
|
||||
params = mapOf(AnalyticsParam.TOKEN_PARAM to token),
|
||||
)
|
||||
|
||||
data class UninitializedAddressScreen(val token: String) : StakingAnalyticsEvent(
|
||||
event = "Uninitialized Address Screen",
|
||||
params = mapOf(AnalyticsParam.TOKEN_PARAM to token),
|
||||
)
|
||||
|
||||
data class ButtonActivate(val token: String) : StakingAnalyticsEvent(
|
||||
event = "Button - Activate",
|
||||
params = mapOf(AnalyticsParam.TOKEN_PARAM to token),
|
||||
)
|
||||
}
|
||||
|
||||
enum class StakeScreenSource {
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
}
|
||||
|
|
@ -943,6 +943,11 @@ internal class StakingModel @Inject constructor(
|
|||
}
|
||||
|
||||
override fun onActivateTonAccountNotificationClick() {
|
||||
analyticsEventHandler.send(
|
||||
StakingAnalyticsEvent.UninitializedAddressScreen(
|
||||
token = cryptoCurrencyStatus.currency.symbol,
|
||||
),
|
||||
)
|
||||
modelScope.launch {
|
||||
stateController.update(
|
||||
ShowTonInitializeBottomSheetTransformer(
|
||||
|
|
@ -996,7 +1001,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(
|
||||
|
|
|
|||
|
|
@ -81,5 +81,7 @@ internal object StakingClickIntentsStub : StakingClickIntents {
|
|||
|
||||
override fun onActivateTonAccountNotificationClick() {}
|
||||
|
||||
override fun onActivateTonAccountNotificationShow() {}
|
||||
|
||||
override fun onActivateTonAccountClick() {}
|
||||
}
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue