Updated on 2026-08-14
This commit is contained in:
parent
c428dc5bf5
commit
2c8083d367
2 changed files with 38 additions and 12 deletions
|
|
@ -65,6 +65,8 @@ import com.tangem.feature.wallet.presentation.wallet.state.model.WalletAlertUM
|
|||
import com.tangem.feature.wallet.presentation.wallet.state.model.WalletEvent
|
||||
import com.tangem.feature.wallet.presentation.wallet.state.model.WalletState
|
||||
import com.tangem.feature.wallet.presentation.wallet.state.model.WalletTokensListState
|
||||
import com.tangem.feature.wallet.presentation.wallet.state.model.WalletTokensListUM
|
||||
import com.tangem.feature.wallet.presentation.wallet.state.model.WalletUM
|
||||
import com.tangem.feature.wallet.presentation.wallet.state.transformers.CloseBottomSheetTransformer
|
||||
import com.tangem.feature.wallet.presentation.wallet.state.utils.WalletEventSender
|
||||
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||
|
|
@ -453,16 +455,7 @@ internal class WalletCurrencyActionsClickIntentsImplementor @Inject constructor(
|
|||
}
|
||||
|
||||
override fun onMultiWalletSwapClick(userWalletId: UserWalletId) {
|
||||
val selectedWallet = stateHolder.getSelectedWallet() as? WalletState.MultiCurrency.Content ?: return
|
||||
when (selectedWallet.tokensListState) {
|
||||
is WalletTokensListState.ContentState.Content,
|
||||
is WalletTokensListState.ContentState.PortfolioContent,
|
||||
-> Unit
|
||||
WalletTokensListState.ContentState.Loading,
|
||||
WalletTokensListState.ContentState.Locked,
|
||||
WalletTokensListState.Empty,
|
||||
-> return
|
||||
}
|
||||
if (!isMultiWalletTokensLoaded()) return
|
||||
|
||||
modelScope.launch {
|
||||
val swapRoute = getSwapRoute(
|
||||
|
|
@ -576,6 +569,24 @@ internal class WalletCurrencyActionsClickIntentsImplementor @Inject constructor(
|
|||
return true
|
||||
}
|
||||
|
||||
private fun isMultiWalletTokensLoaded(): Boolean {
|
||||
return if (stateHolder.value.isRedesignEnabled) {
|
||||
val selectedWalletUM = stateHolder.getSelectedWalletUM() as? WalletUM.Content ?: return false
|
||||
selectedWalletUM.tokensListUM is WalletTokensListUM.Content
|
||||
} else {
|
||||
val selectedWallet = stateHolder.getSelectedWallet() as? WalletState.MultiCurrency.Content ?: return false
|
||||
when (selectedWallet.tokensListState) {
|
||||
is WalletTokensListState.ContentState.Content,
|
||||
is WalletTokensListState.ContentState.PortfolioContent,
|
||||
-> true
|
||||
WalletTokensListState.ContentState.Loading,
|
||||
WalletTokensListState.ContentState.Locked,
|
||||
WalletTokensListState.Empty,
|
||||
-> false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun onMultiWalletActionClick(
|
||||
statusFlow: Flow<Lce<Throwable, Any>>,
|
||||
route: AppRoute,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package com.tangem.feature.wallet.presentation.wallet.state.utils
|
||||
|
||||
import com.tangem.core.ui.ds.button.TangemButtonUM
|
||||
import com.tangem.core.ui.ds.image.TangemIconUM
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.feature.wallet.presentation.wallet.state.model.WalletManageButton
|
||||
import com.tangem.feature.wallet.presentation.wallet.state.model.WalletState
|
||||
import com.tangem.feature.wallet.presentation.wallet.state.model.WalletUM
|
||||
|
|
@ -16,11 +18,24 @@ internal fun WalletState.MultiCurrency.Content.disableButtons(): PersistentList<
|
|||
}
|
||||
|
||||
internal fun WalletUM.Content.enableButtons(): PersistentList<TangemButtonUM> {
|
||||
return buttons.map { it.copy(isEnabled = true) }.toPersistentList()
|
||||
return buttons.map { it.withEnabled(isEnabled = true) }.toPersistentList()
|
||||
}
|
||||
|
||||
internal fun WalletUM.Content.disableButtons(): PersistentList<TangemButtonUM> {
|
||||
return buttons.map { it.copy(isEnabled = false) }.toPersistentList()
|
||||
return buttons.map { it.withEnabled(isEnabled = false) }.toPersistentList()
|
||||
}
|
||||
|
||||
private fun TangemButtonUM.withEnabled(isEnabled: Boolean): TangemButtonUM {
|
||||
val refreshedIcon = (tangemIconUM as? TangemIconUM.Icon)?.copy(
|
||||
tint = {
|
||||
if (isEnabled) {
|
||||
TangemTheme.colors2.graphic.neutral.primary
|
||||
} else {
|
||||
TangemTheme.colors2.graphic.neutral.quaternary
|
||||
}
|
||||
},
|
||||
) ?: tangemIconUM
|
||||
return copy(isEnabled = isEnabled, tangemIconUM = refreshedIcon)
|
||||
}
|
||||
|
||||
private fun WalletState.MultiCurrency.Content.changeAvailability(enabled: Boolean): PersistentList<WalletManageButton> {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue