Updated on 2026-08-14

This commit is contained in:
Tangem 2026-01-29 11:51:53 +03:00
parent fa934e9847
commit 4226d4e94c
2 changed files with 24 additions and 13 deletions

View file

@ -19,8 +19,11 @@ import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.navigation.Router
import com.tangem.core.navigation.share.ShareManager
import com.tangem.core.navigation.url.UrlOpener
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.extensions.wrappedList
import com.tangem.domain.models.wallet.isHotWallet
import com.tangem.domain.account.featuretoggle.AccountsFeatureToggles
import com.tangem.domain.account.status.usecase.ManageCryptoCurrenciesUseCase
import com.tangem.domain.balancehiding.GetBalanceHidingSettingsUseCase
@ -592,21 +595,16 @@ internal class SendConfirmModel @Inject constructor(
private fun primaryButtonUM(): NavigationButton {
val confirmUM = uiState.value.confirmUM
val isReadyToSend = confirmUM is ConfirmUM.Content && !confirmUM.isSending
val isContent = confirmUM is ConfirmUM.Content
val isReadyToSend = isContent && !confirmUM.isSending
val isHoldToConfirm = userWallet.isHotWallet && isContent
return NavigationButton(
textReference = when (confirmUM) {
is ConfirmUM.Success -> resourceReference(R.string.common_close)
is ConfirmUM.Content -> if (confirmUM.isSending) {
resourceReference(R.string.send_sending)
} else {
resourceReference(R.string.common_send)
}
else -> resourceReference(R.string.common_send)
},
textReference = getPrimaryButtonText(confirmUM, isHoldToConfirm),
iconRes = walletInterationIcon(userWallet),
isIconVisible = isReadyToSend,
isIconVisible = isReadyToSend && !isHoldToConfirm,
isEnabled = confirmUM.isPrimaryButtonEnabled,
isHapticClick = isReadyToSend,
isHoldToConfirm = isHoldToConfirm,
onClick = {
when (confirmUM) {
is ConfirmUM.Success -> appRouter.pop()
@ -621,6 +619,18 @@ internal class SendConfirmModel @Inject constructor(
)
}
private fun getPrimaryButtonText(confirmUM: ConfirmUM, isHoldToConfirm: Boolean): TextReference {
return when {
isHoldToConfirm -> resourceReference(
id = com.tangem.core.ui.R.string.common_hold_to,
formatArgs = wrappedList(resourceReference(R.string.common_send)),
)
confirmUM is ConfirmUM.Success -> resourceReference(R.string.common_close)
confirmUM is ConfirmUM.Content && confirmUM.isSending -> resourceReference(R.string.send_sending)
else -> resourceReference(R.string.common_send)
}
}
override fun onFeeResult(feeSelectorUM: FeeSelectorUMRedesigned) {
sendIdleTimer = SystemClock.elapsedRealtime()
_uiState.update { it.copy(feeSelectorUM = feeSelectorUM) }

View file

@ -488,8 +488,9 @@ internal class SendWithSwapConfirmModel @Inject constructor(
it.second is SendWithSwapRoute.Confirm
}.onEach { (state, _) ->
val confirmUM = state.confirmUM
val isReadyToSend = confirmUM is ConfirmUM.Content && !confirmUM.isTransactionInProcess
val isHoldToConfirm = params.userWallet.isHotWallet && confirmUM is ConfirmUM.Content
val isContent = confirmUM is ConfirmUM.Content
val isReadyToSend = isContent && !confirmUM.isTransactionInProcess
val isHoldToConfirm = params.userWallet.isHotWallet && isContent
params.callback.onResult(
route = SendWithSwapRoute.Confirm,
sendWithSwapUM = state.copy(