Updated on 2026-08-14

This commit is contained in:
Tangem 2024-12-10 13:46:54 +05:00
parent 584254ea3e
commit eaa6c10676
3 changed files with 18 additions and 8 deletions

View file

@ -49,9 +49,8 @@ internal class OnrampStateFactory(
fun getOnrampErrorState(onrampError: OnrampError): OnrampMainComponentUM {
return when (onrampError) {
OnrampError.PairsNotFound -> getNoPairsErrorState()
is OnrampError.DataError,
is OnrampError.DomainError,
-> getErrorState()
is OnrampError.DataError -> getErrorState(onrampError.code)
is OnrampError.DomainError -> getErrorState()
is OnrampError.AmountError.TooBigError,
is OnrampError.AmountError.TooSmallError,
OnrampError.RedirectError.VerificationFailed,
@ -75,7 +74,7 @@ internal class OnrampStateFactory(
)
}
private fun getErrorState(): OnrampMainComponentUM {
private fun getErrorState(errorCode: String? = null): OnrampMainComponentUM {
val state = currentStateProvider()
val endButton = state.topBarConfig.endButtonUM.copy(enabled = true)
@ -87,10 +86,16 @@ internal class OnrampStateFactory(
amountFieldModel = state.amountBlockState.amountFieldModel.copy(isError = true),
),
providerBlockState = OnrampProviderBlockUM.Empty,
errorNotification = NotificationUM.Warning.OnrampErrorNotification(onrampIntents::onRefresh),
errorNotification = NotificationUM.Warning.OnrampErrorNotification(
errorCode = errorCode,
onRefresh = onrampIntents::onRefresh,
),
)
is OnrampMainComponentUM.InitialLoading -> state.copy(
errorNotification = NotificationUM.Warning.OnrampErrorNotification(onrampIntents::onRefresh),
errorNotification = NotificationUM.Warning.OnrampErrorNotification(
errorCode = errorCode,
onRefresh = onrampIntents::onRefresh,
),
)
}
}

View file

@ -202,6 +202,7 @@ internal class OnrampMainComponentModel @Inject constructor(
val bestProvider = quote as? OnrampQuote.Data
val isMultipleQuotes = !quotes.isSingleItem()
val isOtherQuotesHasData = quotes
.filter { it.paymentMethod == quote.paymentMethod }
.filterNot { it == bestProvider }
.any { it is OnrampQuote.Data }
val hasBestProvider = isMultipleQuotes && isOtherQuotesHasData