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 16cb6b2bcb..cb68e69748 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 @@ -123,6 +123,7 @@ internal class DefaultSwapComponent @AssistedInject constructor( analyticsCategoryName = CommonSendAnalyticEvents.SWAP_CATEGORY, analyticsSendSource = CommonSendAnalyticEvents.CommonSendSource.Swap, ), + isTransferMode = config.isTransferMode, ), ) } @@ -143,6 +144,7 @@ internal class DefaultSwapComponent @AssistedInject constructor( data class FeeSelectorConfig( val sendingCurrencyStatus: CryptoCurrencyStatus, val feeCurrencyStatus: CryptoCurrencyStatus, + val isTransferMode: Boolean, ) @Suppress("LongMethod", "CyclomaticComplexMethod") @@ -151,6 +153,7 @@ internal class DefaultSwapComponent @AssistedInject constructor( val dataState by model.dataStateStateFlow.collectAsStateWithLifecycle() val fromCryptoCurrency by remember { derivedStateOf { dataState.fromSwapCurrencyStatus?.status } } val feePaidCryptoCurrency by remember { derivedStateOf { dataState.feePaidCryptoCurrency } } + val isInTransferMode by remember { derivedStateOf { dataState.currentTransferState != null } } val shouldHideBlock by remember { derivedStateOf { val isAmountEmptyOrZero = dataState.amount?.parseBigDecimalOrNull().isNullOrZero() @@ -158,7 +161,6 @@ internal class DefaultSwapComponent @AssistedInject constructor( 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) val isTangemPayWithdrawal = model.isTangemPayWithdrawal() @@ -166,7 +168,7 @@ internal class DefaultSwapComponent @AssistedInject constructor( } } - LaunchedEffect(fromCryptoCurrency, feePaidCryptoCurrency, shouldHideBlock) { + LaunchedEffect(fromCryptoCurrency, feePaidCryptoCurrency, shouldHideBlock, isInTransferMode) { if (shouldHideBlock) { TangemLogger.e( messageString = "Dismissing fee selector: " + @@ -194,6 +196,7 @@ internal class DefaultSwapComponent @AssistedInject constructor( FeeSelectorConfig( sendingCurrencyStatus = sendingCryptoCurrencyStatus, feeCurrencyStatus = feeCurrencyStatus, + isTransferMode = isInTransferMode, ), ) } diff --git a/features/swap/impl/src/main/java/com/tangem/feature/swap/component/SwapFeeSelectorBlockComponent.kt b/features/swap/impl/src/main/java/com/tangem/feature/swap/component/SwapFeeSelectorBlockComponent.kt index 96a5d81ee3..7607eafad4 100644 --- a/features/swap/impl/src/main/java/com/tangem/feature/swap/component/SwapFeeSelectorBlockComponent.kt +++ b/features/swap/impl/src/main/java/com/tangem/feature/swap/component/SwapFeeSelectorBlockComponent.kt @@ -19,11 +19,7 @@ import com.tangem.features.send.v2.api.params.FeeSelectorParams import dagger.assisted.Assisted import dagger.assisted.AssistedFactory import dagger.assisted.AssistedInject -import kotlinx.coroutines.flow.MutableStateFlow -import kotlinx.coroutines.flow.SharedFlow -import kotlinx.coroutines.flow.StateFlow -import kotlinx.coroutines.flow.launchIn -import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.flow.* class SwapFeeSelectorBlockComponent @AssistedInject constructor( @Assisted appComponentContext: AppComponentContext, @@ -44,7 +40,11 @@ class SwapFeeSelectorBlockComponent @AssistedInject constructor( null }, feeDisplaySource = FeeSelectorParams.FeeDisplaySource.Screen, - feeStateConfiguration = FeeSelectorParams.FeeStateConfiguration.ExcludeLow, + feeStateConfiguration = if (params.isTransferMode) { + FeeSelectorParams.FeeStateConfiguration.None + } else { + FeeSelectorParams.FeeStateConfiguration.ExcludeLow + }, feeCryptoCurrencyStatus = params.feeCryptoCurrencyStatus, cryptoCurrencyStatus = params.sendingCryptoCurrencyStatus, analyticsCategoryName = params.analyticsParams.analyticsCategoryName, @@ -100,6 +100,7 @@ class SwapFeeSelectorBlockComponent @AssistedInject constructor( val feeCryptoCurrencyStatus: CryptoCurrencyStatus, val analyticsParams: AnalyticsParams, val repository: ModelRepository, + val isTransferMode: Boolean, ) @AssistedFactory