Updated on 2026-08-14
This commit is contained in:
parent
352043ab4f
commit
ee4760b7e1
3 changed files with 8 additions and 5 deletions
|
|
@ -21,7 +21,7 @@ sealed interface OnrampProviderWithQuote {
|
|||
val availablePaymentMethods: List<OnrampPaymentMethod>,
|
||||
) : Unavailable
|
||||
|
||||
data class Error(
|
||||
data class AmountError(
|
||||
override val provider: OnrampProvider,
|
||||
val quoteError: OnrampQuote.AmountError,
|
||||
) : Unavailable
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ class GetOnrampProviderWithQuoteUseCase(
|
|||
toAmount = matchedQuote.toAmount,
|
||||
fromAmount = matchedQuote.fromAmount,
|
||||
)
|
||||
is OnrampQuote.AmountError -> Unavailable.Error(
|
||||
is OnrampQuote.AmountError -> Unavailable.AmountError(
|
||||
provider = matchedQuote.provider,
|
||||
quoteError = matchedQuote,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -76,10 +76,13 @@ internal class SelectProviderModel @Inject constructor(
|
|||
val filteredEmptyMethods = methods.mapNotNull { method ->
|
||||
val providers = getOnrampProviderWithQuoteUseCase(method).getOrNull()
|
||||
if (!providers.isNullOrEmpty()) {
|
||||
val allErrorProviders = providers.all {
|
||||
it is OnrampProviderWithQuote.Unavailable.NotSupportedPaymentMethod
|
||||
}
|
||||
PaymentProviderUM(
|
||||
paymentMethod = method,
|
||||
providers = providers.toProvidersListItems(),
|
||||
)
|
||||
).takeIf { !allErrorProviders }
|
||||
} else {
|
||||
null
|
||||
}
|
||||
|
|
@ -225,7 +228,7 @@ internal class SelectProviderModel @Inject constructor(
|
|||
},
|
||||
)
|
||||
}
|
||||
is OnrampProviderWithQuote.Unavailable.Error -> {
|
||||
is OnrampProviderWithQuote.Unavailable.AmountError -> {
|
||||
val quoteError = quote.quoteError
|
||||
val amount = quoteError.error.requiredAmount.format {
|
||||
crypto(symbol = quoteError.fromAmount.symbol, decimals = quoteError.fromAmount.decimals)
|
||||
|
|
@ -307,7 +310,7 @@ internal class SelectProviderModel @Inject constructor(
|
|||
is OnrampProviderWithQuote.Data -> it.toAmount.value
|
||||
|
||||
// negative difference to sort both when data and unavailable is present
|
||||
is OnrampProviderWithQuote.Unavailable.Error -> {
|
||||
is OnrampProviderWithQuote.Unavailable.AmountError -> {
|
||||
when (val error = it.quoteError.error) {
|
||||
is OnrampError.AmountError.TooSmallError -> it.quoteError.fromAmount.value - error.requiredAmount
|
||||
is OnrampError.AmountError.TooBigError -> error.requiredAmount - it.quoteError.fromAmount.value
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue