From 68a1fede86d0c3d7e6376c335a7b9ea00c18f87d Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 21 May 2026 15:25:43 +0100 Subject: [PATCH] Updated on 2026-08-14 --- .../com/tangem/feature/swap/DefaultSwapComponent.kt | 13 +++++++++---- .../java/com/tangem/feature/swap/model/SwapModel.kt | 2 ++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/features/swap/impl/src/main/java/com/tangem/feature/swap/DefaultSwapComponent.kt b/features/swap/impl/src/main/java/com/tangem/feature/swap/DefaultSwapComponent.kt index 52c1cd0ccd..3e10710467 100644 --- a/features/swap/impl/src/main/java/com/tangem/feature/swap/DefaultSwapComponent.kt +++ b/features/swap/impl/src/main/java/com/tangem/feature/swap/DefaultSwapComponent.kt @@ -153,10 +153,15 @@ internal class DefaultSwapComponent @AssistedInject constructor( val feePaidCryptoCurrency by remember { derivedStateOf { dataState.feePaidCryptoCurrency } } val shouldHideBlock by remember { derivedStateOf { - dataState.amount?.parseBigDecimalOrNull().isNullOrZero() || - model.uiState.isInsufficientFunds || - dataState.selectedProvider == null || - dataState.getCurrentLoadedSwapState()?.permissionState !is PermissionDataState.Empty + val isAmountEmptyOrZero = dataState.amount?.parseBigDecimalOrNull().isNullOrZero() + val isInsufficientFunds = model.uiState.isInsufficientFunds + val isProviderMissing = dataState.selectedProvider == null + val loadedState = dataState.getCurrentLoadedSwapState() + val isPermissionNotReady = loadedState?.permissionState !is PermissionDataState.Empty + val isInTransferMode = dataState.currentTransferState != null + val isSwapNotReady = !isInTransferMode && (isProviderMissing || isPermissionNotReady) + + isAmountEmptyOrZero || isInsufficientFunds || isSwapNotReady } } diff --git a/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt b/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt index f6d78aea97..53160c708a 100644 --- a/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt +++ b/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt @@ -597,6 +597,7 @@ internal class SwapModel @Inject constructor( fromTokenAmount = lastAmount.value, ) if (isUpdatedToTransferMode) return + dataState = dataState.copy(currentTransferState = null) modelScope.launch { uiState = stateBuilder.createInitialLoadingState( uiStateHolder = uiState, @@ -1078,6 +1079,7 @@ internal class SwapModel @Inject constructor( emptyAmountState = state, fromSwapCurrencyStatus = fromSwapCurrencyStatus, ) + dataState = dataState.copy(amount = "0") } private fun setupErrorUiState(provider: SwapProvider, state: SwapState.SwapError) {