From 1a8756bba5c052e2b04f673c03e70cc72acd79d7 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 13 Dec 2024 15:18:34 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../factory/amount/OnrampAmountStateFactory.kt | 18 ++++++++++++++++++ .../main/model/OnrampMainComponentModel.kt | 6 +++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/entity/factory/amount/OnrampAmountStateFactory.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/entity/factory/amount/OnrampAmountStateFactory.kt index cb9d102bc6..5d85cb0561 100644 --- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/entity/factory/amount/OnrampAmountStateFactory.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/entity/factory/amount/OnrampAmountStateFactory.kt @@ -1,6 +1,7 @@ package com.tangem.features.onramp.main.entity.factory.amount import com.tangem.core.analytics.api.AnalyticsEventHandler +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 @@ -144,6 +145,23 @@ internal class OnrampAmountStateFactory( ) } + fun getAmountSecondaryResetState(): OnrampMainComponentUM { + val currentState = currentStateProvider() + if (currentState !is OnrampMainComponentUM.Content) return currentState + + val amountState = currentState.amountBlockState + + if (amountState.secondaryFieldModel is OnrampAmountSecondaryFieldUM.Content) return currentState + + return currentState.copy( + amountBlockState = amountState.copy( + secondaryFieldModel = OnrampAmountSecondaryFieldUM.Content( + amount = TextReference.EMPTY, + ), + ), + ) + } + private fun OnrampQuote.toProviderBlockState(isBestRate: Boolean): OnrampProviderBlockUM { return OnrampProviderBlockUM.Content( paymentMethod = paymentMethod, diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/model/OnrampMainComponentModel.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/model/OnrampMainComponentModel.kt index c85fe513cc..5b769528eb 100644 --- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/model/OnrampMainComponentModel.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/main/model/OnrampMainComponentModel.kt @@ -157,7 +157,11 @@ internal class OnrampMainComponentModel @Inject constructor( } private suspend fun updatePairsAndQuotes() { - fetchPairsUseCase.invoke(params.cryptoCurrency).onLeft(::handleOnrampError) + _state.update { amountStateFactory.getAmountSecondaryLoadingState() } + fetchPairsUseCase.invoke(params.cryptoCurrency).fold( + ifLeft = ::handleOnrampError, + ifRight = { _state.update { amountStateFactory.getAmountSecondaryResetState() } }, + ) startLoadingQuotes() }