Updated on 2026-08-14

This commit is contained in:
Tangem 2024-12-05 16:41:05 +05:00
parent a9ed9d7776
commit f941f6f1b9
6 changed files with 29 additions and 12 deletions

View file

@ -4,5 +4,6 @@ internal data class ProviderListPaymentMethodUM(
val id: String,
val name: String,
val imageUrl: String,
val enabled: Boolean,
val onClick: () -> Unit,
)

View file

@ -70,7 +70,13 @@ internal class SelectProviderModel @Inject constructor(
modelScope.launch {
getOnrampProviderWithQuoteUseCase.invoke(paymentMethod)
.onRight { quotes ->
_state.update { state -> state.copy(providers = quotes.toProvidersListItems()) }
val hasQuotesData = quotes.any { it is OnrampProviderWithQuote.Data }
_state.update { state ->
state.copy(
paymentMethod = state.paymentMethod.copy(enabled = hasQuotesData),
providers = quotes.toProvidersListItems(),
)
}
}
.onLeft { Timber.e(it) }
}
@ -82,6 +88,7 @@ internal class SelectProviderModel @Inject constructor(
id = params.selectedPaymentMethod.id,
name = params.selectedPaymentMethod.name,
imageUrl = params.selectedPaymentMethod.imageUrl,
enabled = false,
onClick = ::openPaymentMethods,
),
providers = emptyList<ProviderListItemUM>().toImmutableList(),
@ -101,7 +108,7 @@ internal class SelectProviderModel @Inject constructor(
}
}
private fun List<OnrampPaymentMethod>.toPaymentUMList(): List<PaymentMethodUM> = map { method ->
private fun Set<OnrampPaymentMethod>.toPaymentUMList(): List<PaymentMethodUM> = map { method ->
PaymentMethodUM(
id = method.id,
imageUrl = method.imageUrl,

View file

@ -1,9 +1,12 @@
package com.tangem.features.onramp.providers.ui
import android.content.res.Configuration
import androidx.compose.foundation.*
import androidx.compose.foundation.border
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
@ -82,7 +85,7 @@ private fun PaymentMethodBlock(state: ProviderListPaymentMethodUM, modifier: Mod
color = TangemTheme.colors.stroke.secondary,
shape = RoundedCornerShape(TangemTheme.dimens.radius16),
)
.clickable(onClick = state.onClick)
.clickable(enabled = state.enabled, onClick = state.onClick)
.padding(all = TangemTheme.dimens.spacing12),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(TangemTheme.dimens.spacing12),