From 48180a9b38f1792d3fea632292486576153108d3 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 8 Jul 2025 13:30:51 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../features/send/v2/send/model/SendModel.kt | 6 ++++++ .../subcomponents/amount/SendAmountComponent.kt | 2 ++ .../amount/model/SendAmountModel.kt | 17 +++++++++++++---- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/send/model/SendModel.kt b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/send/model/SendModel.kt index 5b279402b0..96a985f08d 100644 --- a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/send/model/SendModel.kt +++ b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/send/model/SendModel.kt @@ -43,6 +43,7 @@ import com.tangem.features.send.v2.api.entity.PredefinedValues import com.tangem.features.send.v2.api.subcomponents.destination.SendDestinationComponent import com.tangem.features.send.v2.api.subcomponents.destination.entity.DestinationUM import com.tangem.features.send.v2.common.CommonSendRoute +import com.tangem.domain.wallets.models.GetUserWalletError import com.tangem.features.send.v2.common.SendConfirmAlertFactory import com.tangem.features.send.v2.common.ui.state.ConfirmUM import com.tangem.features.send.v2.send.confirm.SendConfirmComponent @@ -157,6 +158,11 @@ internal class SendModel @Inject constructor( params.callback?.onConvertToAnotherToken(lastAmount = lastAmount) } + override fun onError(error: GetUserWalletError) { + Timber.w(error.toString()) + showAlertError() + } + suspend fun loadFee(): Either { val predefinedValues = predefinedValues val transferTransaction = if (predefinedValues is PredefinedValues.Content.Deeplink) { diff --git a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/amount/SendAmountComponent.kt b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/amount/SendAmountComponent.kt index 07190f20ef..cebf431139 100644 --- a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/amount/SendAmountComponent.kt +++ b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/amount/SendAmountComponent.kt @@ -9,6 +9,7 @@ import com.tangem.common.ui.navigationButtons.NavigationModelCallback import com.tangem.core.decompose.context.AppComponentContext import com.tangem.core.decompose.model.getOrCreateModel import com.tangem.core.ui.decompose.ComposableContentComponent +import com.tangem.domain.wallets.models.GetUserWalletError import com.tangem.features.send.v2.subcomponents.amount.SendAmountComponentParams.AmountParams import com.tangem.features.send.v2.subcomponents.amount.model.SendAmountModel import com.tangem.features.send.v2.subcomponents.amount.ui.SendAmountContent @@ -39,5 +40,6 @@ internal class SendAmountComponent( interface ModelCallback : NavigationModelCallback { fun onAmountResult(amountUM: AmountState, isResetPredefined: Boolean) fun onConvertToAnotherToken(lastAmount: String) + fun onError(error: GetUserWalletError) } } \ No newline at end of file diff --git a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/amount/model/SendAmountModel.kt b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/amount/model/SendAmountModel.kt index 144128ac28..16ba4a5cef 100644 --- a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/amount/model/SendAmountModel.kt +++ b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/subcomponents/amount/model/SendAmountModel.kt @@ -85,10 +85,19 @@ internal class SendAmountModel @Inject constructor( } private fun initAppCurrency() { - modelScope.launch { - userWallet = getUserWalletUseCase(params.userWalletId).getOrNull() - appCurrency = getSelectedAppCurrencyUseCase.invokeSync().getOrElse { AppCurrency.Default } - } + getUserWalletUseCase.invokeFlow(params.userWalletId) + .onEach { either -> + either.fold( + ifLeft = { error -> + val amountParams = params as? SendAmountComponentParams.AmountParams + amountParams?.callback?.onError(error) + }, + ifRight = { wallet -> + userWallet = wallet + appCurrency = getSelectedAppCurrencyUseCase.invokeSync().getOrElse { AppCurrency.Default } + }, + ) + }.launchIn(modelScope) } private fun subscribeOnCryptoCurrencyStatusFlow() {