Updated on 2026-08-14
This commit is contained in:
parent
84f35ac892
commit
e7edce0cd8
5 changed files with 205 additions and 0 deletions
|
|
@ -0,0 +1,14 @@
|
|||
package com.tangem.feature.wallet.child.managetokens.analytics
|
||||
|
||||
import com.tangem.core.analytics.models.AnalyticsEvent
|
||||
|
||||
internal sealed class PortfolioAnalyticsEvent(
|
||||
event: String,
|
||||
) : AnalyticsEvent(category = "Portfolio", event = event) {
|
||||
|
||||
class ButtonAddManage : PortfolioAnalyticsEvent(event = "Button - Add Manage")
|
||||
|
||||
class ButtonAddTokens : PortfolioAnalyticsEvent(event = "Button - Add tokens")
|
||||
|
||||
class ButtonOrganizeTokens : PortfolioAnalyticsEvent(event = "Button - Organize Tokens")
|
||||
}
|
||||
|
|
@ -3,11 +3,13 @@ package com.tangem.feature.wallet.child.managetokens.model
|
|||
import com.arkivanov.decompose.router.slot.SlotNavigation
|
||||
import com.arkivanov.decompose.router.slot.activate
|
||||
import com.arkivanov.decompose.router.slot.dismiss
|
||||
import com.tangem.core.analytics.api.AnalyticsEventHandler
|
||||
import com.tangem.core.decompose.di.ModelScoped
|
||||
import com.tangem.core.decompose.model.Model
|
||||
import com.tangem.core.decompose.model.ParamsContainer
|
||||
import com.tangem.domain.models.account.AccountId
|
||||
import com.tangem.feature.wallet.child.managetokens.AddAndManageBottomSheetComponent
|
||||
import com.tangem.feature.wallet.child.managetokens.analytics.PortfolioAnalyticsEvent
|
||||
import com.tangem.features.commonfeatures.api.portfolioselector.PortfolioFetcher
|
||||
import com.tangem.features.commonfeatures.api.portfolioselector.PortfolioSelectorComponent
|
||||
import com.tangem.features.commonfeatures.api.portfolioselector.PortfolioSelectorController
|
||||
|
|
@ -21,6 +23,7 @@ internal class AddAndManageModel @Inject constructor(
|
|||
paramsContainer: ParamsContainer,
|
||||
override val dispatchers: CoroutineDispatcherProvider,
|
||||
private val portfolioFetcherFactory: PortfolioFetcher.Factory,
|
||||
private val analyticsEventHandler: AnalyticsEventHandler,
|
||||
val portfolioSelectorController: PortfolioSelectorController,
|
||||
) : Model() {
|
||||
|
||||
|
|
@ -45,6 +48,7 @@ internal class AddAndManageModel @Inject constructor(
|
|||
}
|
||||
|
||||
fun onAddTokensClick() {
|
||||
analyticsEventHandler.send(PortfolioAnalyticsEvent.ButtonAddTokens())
|
||||
modelScope.launch {
|
||||
val data = portfolioFetcher.data.first()
|
||||
val isSingleAccount = data.isSingleChoice(params.userWalletId)
|
||||
|
|
@ -65,6 +69,7 @@ internal class AddAndManageModel @Inject constructor(
|
|||
}
|
||||
|
||||
fun onOrganizeTokensClick() {
|
||||
analyticsEventHandler.send(PortfolioAnalyticsEvent.ButtonOrganizeTokens())
|
||||
params.onDismiss()
|
||||
params.onOrganizeTokensClick()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import com.tangem.domain.tokens.GetCryptoCurrencyActionsUseCase
|
|||
import com.tangem.domain.txhistory.usecase.GetExplorerTransactionUrlUseCase
|
||||
import com.tangem.domain.wallets.usecase.GetUserWalletUseCase
|
||||
import com.tangem.domain.yield.supply.usecase.YieldSupplySetShouldShowMainPromoUseCase
|
||||
import com.tangem.feature.wallet.child.managetokens.analytics.PortfolioAnalyticsEvent
|
||||
import com.tangem.feature.wallet.presentation.account.AccountDependencies
|
||||
import com.tangem.feature.wallet.presentation.wallet.analytics.utils.TokenListAnalyticsSender
|
||||
import com.tangem.feature.wallet.presentation.wallet.domain.OnrampStatusFactory
|
||||
|
|
@ -123,6 +124,7 @@ internal class WalletContentClickIntentsImplementor @Inject constructor(
|
|||
override fun onOrganizeTokensClick() {
|
||||
val userWalletId = stateHolder.getSelectedWalletId()
|
||||
if (walletFeatureToggles.isAddAndManageTokensEnabled) {
|
||||
analyticsEventHandler.send(PortfolioAnalyticsEvent.ButtonAddManage())
|
||||
router.openAddAndManageBottomSheet(userWalletId = userWalletId)
|
||||
} else {
|
||||
router.openOrganizeTokensScreen(userWalletId = userWalletId)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue