Updated on 2026-08-14
This commit is contained in:
parent
5a62376bfa
commit
f4fa13627c
15 changed files with 142 additions and 53 deletions
|
|
@ -5,7 +5,6 @@ import androidx.compose.ui.Modifier
|
|||
import com.tangem.common.ui.account.AccountIconPreviewData
|
||||
import com.tangem.common.ui.userwallet.state.UserWalletItemUM
|
||||
import com.tangem.common.ui.userwallet.state.UserWalletItemUM.ImageState
|
||||
import com.tangem.core.analytics.DummyAnalyticsEventHandler
|
||||
import com.tangem.core.decompose.navigation.DummyRouter
|
||||
import com.tangem.core.ui.components.block.model.BlockUM
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
|
|
@ -45,7 +44,6 @@ internal class PreviewWalletSettingsComponent : WalletSettingsComponent {
|
|||
popBack = {},
|
||||
items = ItemsBuilder(
|
||||
router = DummyRouter(),
|
||||
analyticsEventHandler = DummyAnalyticsEventHandler(),
|
||||
).buildItems(
|
||||
userWallet = UserWallet.Hot(
|
||||
walletId = UserWalletId("011"),
|
||||
|
|
@ -62,6 +60,7 @@ internal class PreviewWalletSettingsComponent : WalletSettingsComponent {
|
|||
forgetWallet = {},
|
||||
onLinkMoreCardsClick = {},
|
||||
onReferralClick = {},
|
||||
onManageTokensClick = {},
|
||||
isManageTokensAvailable = true,
|
||||
isNotificationsEnabled = true,
|
||||
onCheckedNotificationsChanged = {},
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import arrow.core.getOrElse
|
|||
import com.arkivanov.decompose.router.slot.SlotNavigation
|
||||
import com.arkivanov.decompose.router.slot.activate
|
||||
import com.tangem.common.routing.AppRoute
|
||||
import com.tangem.common.routing.AppRoute.ManageTokens.Source
|
||||
import com.tangem.core.analytics.api.AnalyticsEventHandler
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.OnOffState.Off
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.OnOffState.On
|
||||
|
|
@ -26,6 +27,8 @@ import com.tangem.core.ui.message.bottomSheetMessage
|
|||
import com.tangem.domain.account.featuretoggle.AccountsFeatureToggles
|
||||
import com.tangem.domain.card.common.util.cardTypesResolver
|
||||
import com.tangem.domain.demo.IsDemoCardUseCase
|
||||
import com.tangem.domain.models.PortfolioId
|
||||
import com.tangem.domain.models.account.AccountId
|
||||
import com.tangem.domain.models.scan.CardDTO
|
||||
import com.tangem.domain.models.scan.ScanResponse
|
||||
import com.tangem.domain.models.wallet.UserWallet
|
||||
|
|
@ -220,6 +223,21 @@ internal class WalletSettingsModel @Inject constructor(
|
|||
}
|
||||
},
|
||||
onReferralClick = { onReferralClick(userWallet) },
|
||||
onManageTokensClick = {
|
||||
analyticsEventHandler.send(Settings.ButtonManageTokens)
|
||||
router.push(
|
||||
AppRoute.ManageTokens(
|
||||
source = Source.SETTINGS,
|
||||
portfolioId = if (accountsFeatureEnabled) {
|
||||
PortfolioId(
|
||||
accountId = AccountId.forMainCryptoPortfolio(userWalletId = userWallet.walletId),
|
||||
)
|
||||
} else {
|
||||
PortfolioId(userWalletId = userWallet.walletId)
|
||||
},
|
||||
),
|
||||
)
|
||||
},
|
||||
isNotificationsEnabled = isNotificationsEnabled,
|
||||
isNotificationsPermissionGranted = isNotificationsPermissionGranted,
|
||||
onCheckedNotificationsChanged = ::onCheckedNotificationsChange,
|
||||
|
|
|
|||
|
|
@ -1,17 +1,13 @@
|
|||
package com.tangem.feature.walletsettings.utils
|
||||
|
||||
import com.tangem.common.routing.AppRoute
|
||||
import com.tangem.common.routing.AppRoute.ManageTokens.Source
|
||||
import com.tangem.core.analytics.api.AnalyticsEventHandler
|
||||
import com.tangem.core.decompose.di.ModelScoped
|
||||
import com.tangem.core.decompose.navigation.Router
|
||||
import com.tangem.core.ui.components.block.model.BlockUM
|
||||
import com.tangem.core.ui.components.label.entity.LabelStyle
|
||||
import com.tangem.core.ui.components.label.entity.LabelUM
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.domain.models.PortfolioId
|
||||
import com.tangem.domain.models.wallet.UserWallet
|
||||
import com.tangem.feature.walletsettings.analytics.Settings
|
||||
import com.tangem.feature.walletsettings.entity.WalletSettingsAccountsUM
|
||||
import com.tangem.feature.walletsettings.entity.WalletSettingsItemUM
|
||||
import com.tangem.feature.walletsettings.impl.R
|
||||
|
|
@ -24,7 +20,6 @@ import javax.inject.Inject
|
|||
@ModelScoped
|
||||
internal class ItemsBuilder @Inject constructor(
|
||||
private val router: Router,
|
||||
private val analyticsEventHandler: AnalyticsEventHandler,
|
||||
) {
|
||||
|
||||
@Suppress("LongParameterList")
|
||||
|
|
@ -45,6 +40,7 @@ internal class ItemsBuilder @Inject constructor(
|
|||
forgetWallet: () -> Unit,
|
||||
onLinkMoreCardsClick: () -> Unit,
|
||||
onReferralClick: () -> Unit,
|
||||
onManageTokensClick: () -> Unit,
|
||||
onAccessCodeClick: () -> Unit,
|
||||
walletUpgradeDismissed: Boolean,
|
||||
onUpgradeWalletClick: () -> Unit,
|
||||
|
|
@ -69,6 +65,7 @@ internal class ItemsBuilder @Inject constructor(
|
|||
isManageTokensAvailable = isManageTokensAvailable,
|
||||
onLinkMoreCardsClick = onLinkMoreCardsClick,
|
||||
onReferralClick = onReferralClick,
|
||||
onManageTokensClick = onManageTokensClick,
|
||||
),
|
||||
)
|
||||
.addAll(
|
||||
|
|
@ -175,6 +172,7 @@ internal class ItemsBuilder @Inject constructor(
|
|||
isManageTokensAvailable: Boolean,
|
||||
onLinkMoreCardsClick: () -> Unit,
|
||||
onReferralClick: () -> Unit,
|
||||
onManageTokensClick: () -> Unit,
|
||||
) = WalletSettingsItemUM.WithItems(
|
||||
id = "card",
|
||||
description = resourceReference(R.string.settings_card_settings_footer),
|
||||
|
|
@ -204,10 +202,7 @@ internal class ItemsBuilder @Inject constructor(
|
|||
BlockUM(
|
||||
text = resourceReference(R.string.add_tokens_title),
|
||||
iconRes = R.drawable.ic_tether_24,
|
||||
onClick = {
|
||||
analyticsEventHandler.send(Settings.ButtonManageTokens)
|
||||
router.push(AppRoute.ManageTokens(Source.SETTINGS, PortfolioId(userWalletId)))
|
||||
},
|
||||
onClick = onManageTokensClick,
|
||||
).let(::add)
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue