Updated on 2026-08-14
This commit is contained in:
parent
48f657e1a6
commit
6248999321
5 changed files with 19 additions and 9 deletions
|
|
@ -22,6 +22,7 @@ internal class PreviewWalletSettingsComponent : WalletSettingsComponent {
|
|||
userWalletName = "My Wallet",
|
||||
isReferralAvailable = true,
|
||||
isLinkMoreCardsAvailable = true,
|
||||
isRenameWalletAvailable = false,
|
||||
renameWallet = {},
|
||||
forgetWallet = {},
|
||||
onLinkMoreCardsClick = {},
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ internal sealed class WalletSettingsItemUM {
|
|||
override val id: String,
|
||||
val title: TextReference,
|
||||
val text: TextReference,
|
||||
val isEnabled: Boolean,
|
||||
val onClick: () -> Unit,
|
||||
) : WalletSettingsItemUM()
|
||||
}
|
||||
|
|
@ -25,6 +25,7 @@ import com.tangem.domain.redux.ReduxStateHolder
|
|||
import com.tangem.domain.wallets.models.UserWallet
|
||||
import com.tangem.domain.wallets.usecase.DeleteWalletUseCase
|
||||
import com.tangem.domain.wallets.usecase.GetUserWalletUseCase
|
||||
import com.tangem.domain.wallets.usecase.ShouldSaveUserWalletsSyncUseCase
|
||||
import com.tangem.feature.walletsettings.analytics.Settings
|
||||
import com.tangem.feature.walletsettings.component.WalletSettingsComponent
|
||||
import com.tangem.feature.walletsettings.entity.DialogConfig
|
||||
|
|
@ -53,6 +54,7 @@ internal class WalletSettingsModel @Inject constructor(
|
|||
private val analyticsEventHandler: AnalyticsEventHandler,
|
||||
private val analyticsContextProxy: AnalyticsContextProxy,
|
||||
private val reduxStateHolder: ReduxStateHolder,
|
||||
private val getShouldSaveUserWalletsSyncUseCase: ShouldSaveUserWalletsSyncUseCase,
|
||||
) : Model() {
|
||||
|
||||
val params: WalletSettingsComponent.Params = paramsContainer.require()
|
||||
|
|
@ -70,9 +72,9 @@ internal class WalletSettingsModel @Inject constructor(
|
|||
.distinctUntilChanged()
|
||||
.onEach { maybeWallet ->
|
||||
val wallet = maybeWallet.getOrNull() ?: return@onEach
|
||||
|
||||
val isRenameWalletAvailable = getShouldSaveUserWalletsSyncUseCase()
|
||||
state.update { value ->
|
||||
value.copy(items = buildItems(wallet, dialogNavigation))
|
||||
value.copy(items = buildItems(wallet, dialogNavigation, isRenameWalletAvailable))
|
||||
}
|
||||
}
|
||||
.launchIn(modelScope)
|
||||
|
|
@ -81,12 +83,14 @@ internal class WalletSettingsModel @Inject constructor(
|
|||
private fun buildItems(
|
||||
userWallet: UserWallet,
|
||||
dialogNavigation: SlotNavigation<DialogConfig>,
|
||||
isRenameWalletAvailable: Boolean,
|
||||
): PersistentList<WalletSettingsItemUM> = itemsBuilder.buildItems(
|
||||
userWalletId = userWallet.walletId,
|
||||
userWalletName = userWallet.name,
|
||||
isReferralAvailable = userWallet.cardTypesResolver.isTangemWallet(),
|
||||
isLinkMoreCardsAvailable = userWallet.scanResponse.card.backupStatus == CardDTO.BackupStatus.NoBackup,
|
||||
isManageTokensAvailable = userWallet.isMultiCurrency,
|
||||
isRenameWalletAvailable = isRenameWalletAvailable,
|
||||
renameWallet = { openRenameWalletDialog(userWallet, dialogNavigation) },
|
||||
forgetWallet = {
|
||||
messageSender.send(
|
||||
|
|
|
|||
|
|
@ -145,6 +145,7 @@ private fun ItemsBlock(model: WalletSettingsItemUM.WithItems, modifier: Modifier
|
|||
private fun TextBlock(model: WalletSettingsItemUM.WithText, modifier: Modifier = Modifier) {
|
||||
BlockCard(
|
||||
modifier = modifier.fillMaxWidth(),
|
||||
enabled = model.isEnabled,
|
||||
onClick = model.onClick,
|
||||
) {
|
||||
Column(
|
||||
|
|
|
|||
|
|
@ -30,11 +30,12 @@ internal class ItemsBuilder @Inject constructor(
|
|||
isLinkMoreCardsAvailable: Boolean,
|
||||
isReferralAvailable: Boolean,
|
||||
isManageTokensAvailable: Boolean,
|
||||
isRenameWalletAvailable: Boolean,
|
||||
forgetWallet: () -> Unit,
|
||||
renameWallet: () -> Unit,
|
||||
onLinkMoreCardsClick: () -> Unit,
|
||||
): PersistentList<WalletSettingsItemUM> = persistentListOf(
|
||||
buildNameItem(userWalletName, renameWallet),
|
||||
buildNameItem(userWalletName, isRenameWalletAvailable, renameWallet),
|
||||
buildCardItem(
|
||||
userWalletId = userWalletId,
|
||||
isLinkMoreCardsAvailable = isLinkMoreCardsAvailable,
|
||||
|
|
@ -45,12 +46,14 @@ internal class ItemsBuilder @Inject constructor(
|
|||
buildForgetItem(forgetWallet),
|
||||
)
|
||||
|
||||
private fun buildNameItem(walletName: String, renameWallet: () -> Unit) = WalletSettingsItemUM.WithText(
|
||||
id = "wallet_name",
|
||||
title = resourceReference(id = R.string.settings_wallet_name_title),
|
||||
text = stringReference(walletName),
|
||||
onClick = renameWallet,
|
||||
)
|
||||
private fun buildNameItem(walletName: String, isRenameWalletAvailable: Boolean, renameWallet: () -> Unit) =
|
||||
WalletSettingsItemUM.WithText(
|
||||
id = "wallet_name",
|
||||
title = resourceReference(id = R.string.settings_wallet_name_title),
|
||||
text = stringReference(walletName),
|
||||
isEnabled = isRenameWalletAvailable,
|
||||
onClick = renameWallet,
|
||||
)
|
||||
|
||||
private fun buildCardItem(
|
||||
userWalletId: UserWalletId,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue