Updated on 2026-08-14
This commit is contained in:
parent
a89f2c7225
commit
418fbf710d
17 changed files with 288 additions and 239 deletions
|
|
@ -16,6 +16,7 @@ import androidx.compose.runtime.remember
|
|||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.res.vectorResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
|
@ -25,6 +26,7 @@ import com.tangem.core.ui.components.SpacerW
|
|||
import com.tangem.core.ui.extensions.*
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
import com.tangem.core.ui.test.SelectPaymentMethodBottomSheetTestTags
|
||||
import com.tangem.domain.onramp.model.OnrampPaymentMethod
|
||||
import com.tangem.domain.onramp.model.PaymentMethodType
|
||||
import com.tangem.features.onramp.alloffers.entity.AllOffersPaymentMethodUM
|
||||
|
|
@ -74,10 +76,13 @@ private fun PaymentMethod(methodUM: AllOffersPaymentMethodUM, modifier: Modifier
|
|||
end = 12.dp,
|
||||
top = 14.dp,
|
||||
bottom = 12.dp,
|
||||
),
|
||||
)
|
||||
.testTag(SelectPaymentMethodBottomSheetTestTags.PAYMENT_METHOD),
|
||||
) {
|
||||
PaymentMethodIcon(
|
||||
modifier = Modifier.size(36.dp),
|
||||
modifier = Modifier
|
||||
.size(36.dp)
|
||||
.testTag(SelectPaymentMethodBottomSheetTestTags.PAYMENT_METHOD_ICON),
|
||||
imageUrl = methodUM.methodConfig.method.imageUrl,
|
||||
)
|
||||
|
||||
|
|
@ -111,6 +116,7 @@ private fun PaymentMethodInfoBlock(
|
|||
text = paymentMethodName,
|
||||
style = TangemTheme.typography.subtitle2,
|
||||
color = TangemTheme.colors.text.primary1,
|
||||
modifier = Modifier.testTag(SelectPaymentMethodBottomSheetTestTags.PAYMENT_METHOD_NAME),
|
||||
)
|
||||
SpacerH(2.dp)
|
||||
Row(
|
||||
|
|
@ -121,12 +127,14 @@ private fun PaymentMethodInfoBlock(
|
|||
text = stringResourceSafe(R.string.onramp_up_to_rate),
|
||||
style = TangemTheme.typography.caption2,
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
modifier = Modifier.testTag(SelectPaymentMethodBottomSheetTestTags.UP_TO_TEXT),
|
||||
)
|
||||
|
||||
Text(
|
||||
text = rate,
|
||||
style = TangemTheme.typography.subtitle2,
|
||||
color = TangemTheme.colors.text.primary1,
|
||||
modifier = Modifier.testTag(SelectPaymentMethodBottomSheetTestTags.TOKEN_AMOUNT),
|
||||
)
|
||||
|
||||
when {
|
||||
|
|
@ -134,6 +142,7 @@ private fun PaymentMethodInfoBlock(
|
|||
Image(
|
||||
imageVector = ImageVector.vectorResource(R.drawable.ic_best_rate_12),
|
||||
contentDescription = null,
|
||||
modifier = Modifier.testTag(SelectPaymentMethodBottomSheetTestTags.BEST_RATE_ICON),
|
||||
)
|
||||
}
|
||||
diff != null -> {
|
||||
|
|
@ -158,7 +167,9 @@ private fun PaymentMethodInfoBlock(
|
|||
private fun ProvidersCountBlockInfo(providersCount: Int) {
|
||||
BorderedRow {
|
||||
Icon(
|
||||
modifier = Modifier.size(10.dp),
|
||||
modifier = Modifier
|
||||
.size(10.dp)
|
||||
.testTag(SelectPaymentMethodBottomSheetTestTags.PROVIDER_COUNT_ICON),
|
||||
imageVector = ImageVector.vectorResource(R.drawable.ic_clock_24),
|
||||
tint = TangemTheme.colors.icon.informative,
|
||||
contentDescription = null,
|
||||
|
|
@ -172,6 +183,7 @@ private fun ProvidersCountBlockInfo(providersCount: Int) {
|
|||
),
|
||||
style = TangemTheme.typography.caption2,
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
modifier = Modifier.testTag(SelectPaymentMethodBottomSheetTestTags.PROVIDER_COUNT_TEXT),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -180,7 +192,9 @@ private fun ProvidersCountBlockInfo(providersCount: Int) {
|
|||
private fun TimingBlockInfo(speed: PaymentMethodType.PaymentSpeed) {
|
||||
BorderedRow {
|
||||
Icon(
|
||||
modifier = Modifier.size(10.dp),
|
||||
modifier = Modifier
|
||||
.size(10.dp)
|
||||
.testTag(SelectPaymentMethodBottomSheetTestTags.TIMING_ICON),
|
||||
imageVector = ImageVector.vectorResource(R.drawable.ic_staking_24),
|
||||
tint = TangemTheme.colors.icon.informative,
|
||||
contentDescription = null,
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import androidx.compose.foundation.layout.*
|
|||
import androidx.compose.foundation.text.ClickableText
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.text.buildAnnotatedString
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
|
@ -16,7 +15,6 @@ import com.tangem.core.ui.components.PrimaryButton
|
|||
import com.tangem.core.ui.extensions.appendColored
|
||||
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.test.BuyTokenDetailsScreenTestTags
|
||||
import com.tangem.features.onramp.impl.R
|
||||
import com.tangem.features.onramp.main.entity.OnrampMainComponentUM
|
||||
import com.tangem.features.onramp.main.entity.OnrampProviderBlockUM
|
||||
|
|
@ -79,7 +77,6 @@ private fun OnrampTosText(provider: OnrampProviderBlockUM.Content?) {
|
|||
color = TangemTheme.colors.text.tertiary,
|
||||
textAlign = TextAlign.Center,
|
||||
),
|
||||
modifier = Modifier.testTag(BuyTokenDetailsScreenTestTags.TOS_BLOCK),
|
||||
onClick = { offset ->
|
||||
clickableAnnotation.getStringAnnotations(
|
||||
tag = TERMS_OF_USE_KEY,
|
||||
|
|
|
|||
|
|
@ -13,14 +13,12 @@ import androidx.compose.runtime.Composable
|
|||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.text.SpanStyle
|
||||
import androidx.compose.ui.text.buildAnnotatedString
|
||||
import androidx.compose.ui.text.withStyle
|
||||
import com.tangem.core.ui.extensions.appendSpace
|
||||
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.test.BuyTokenDetailsScreenTestTags
|
||||
import com.tangem.features.onramp.impl.R
|
||||
import com.tangem.features.onramp.main.entity.OnrampProviderBlockUM
|
||||
import com.tangem.features.onramp.paymentmethod.ui.PaymentMethodIcon
|
||||
|
|
@ -62,7 +60,6 @@ private fun OnrampProviderBlock(state: OnrampProviderBlockUM.Content, modifier:
|
|||
},
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
style = TangemTheme.typography.body2,
|
||||
modifier = Modifier.testTag(BuyTokenDetailsScreenTestTags.PROVIDER_TITLE),
|
||||
)
|
||||
Text(
|
||||
text = buildAnnotatedString {
|
||||
|
|
@ -72,7 +69,6 @@ private fun OnrampProviderBlock(state: OnrampProviderBlockUM.Content, modifier:
|
|||
},
|
||||
style = TangemTheme.typography.caption2,
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
modifier = Modifier.testTag(BuyTokenDetailsScreenTestTags.PROVIDER_TEXT),
|
||||
)
|
||||
}
|
||||
AnimatedVisibility(
|
||||
|
|
@ -112,7 +108,6 @@ private fun OnrampProviderLoading(modifier: Modifier = Modifier) {
|
|||
text = stringResourceSafe(id = R.string.express_provider),
|
||||
style = TangemTheme.typography.subtitle2,
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
modifier = Modifier.testTag(BuyTokenDetailsScreenTestTags.PROVIDER_LOADING_TITLE),
|
||||
)
|
||||
Row(
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
|
|
@ -127,7 +122,6 @@ private fun OnrampProviderLoading(modifier: Modifier = Modifier) {
|
|||
text = stringResourceSafe(id = R.string.express_fetch_best_rates),
|
||||
style = TangemTheme.typography.body2,
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
modifier = Modifier.testTag(BuyTokenDetailsScreenTestTags.PROVIDER_LOADING_TEXT),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import androidx.compose.ui.draw.drawWithCache
|
|||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import androidx.compose.ui.res.vectorResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
|
@ -30,6 +31,7 @@ import com.tangem.core.ui.components.buttons.common.TangemButtonSize
|
|||
import com.tangem.core.ui.extensions.*
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
import com.tangem.core.ui.test.OnrampOffersBlockTestTags
|
||||
import com.tangem.domain.onramp.model.OnrampPaymentMethod
|
||||
import com.tangem.domain.onramp.model.PaymentMethodType
|
||||
import com.tangem.features.onramp.impl.R
|
||||
|
|
@ -156,11 +158,13 @@ private fun OfferHeader(advantage: OnrampOfferAdvantagesUM) {
|
|||
imageVector = ImageVector.vectorResource(R.drawable.ic_best_rate_16),
|
||||
tint = TangemTheme.colors.icon.accent,
|
||||
contentDescription = null,
|
||||
modifier = Modifier.testTag(OnrampOffersBlockTestTags.BEST_RATE_ICON),
|
||||
)
|
||||
Text(
|
||||
text = stringResourceSafe(R.string.express_provider_best_rate),
|
||||
style = TangemTheme.typography.caption1,
|
||||
color = TangemTheme.colors.icon.accent,
|
||||
modifier = Modifier.testTag(OnrampOffersBlockTestTags.BEST_RATE_TITLE),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -194,6 +198,7 @@ private fun RateBlock(rate: String, diff: TextReference?) {
|
|||
text = rate,
|
||||
style = TangemTheme.typography.subtitle1,
|
||||
color = TangemTheme.colors.text.primary1,
|
||||
modifier = Modifier.testTag(OnrampOffersBlockTestTags.OFFER_TOKEN_AMOUNT),
|
||||
)
|
||||
diff?.let {
|
||||
Text(
|
||||
|
|
@ -215,7 +220,9 @@ private fun RateBlock(rate: String, diff: TextReference?) {
|
|||
private fun PaymentBlockInOffer(paymentMethod: OnrampPaymentMethod, providerName: String) {
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
Icon(
|
||||
modifier = Modifier.size(16.dp),
|
||||
modifier = Modifier
|
||||
.size(16.dp)
|
||||
.testTag(OnrampOffersBlockTestTags.TIMING_ICON),
|
||||
imageVector = ImageVector.vectorResource(R.drawable.ic_clock_24),
|
||||
tint = TangemTheme.colors.icon.informative,
|
||||
contentDescription = null,
|
||||
|
|
@ -235,6 +242,7 @@ private fun PaymentBlockInOffer(paymentMethod: OnrampPaymentMethod, providerName
|
|||
text = providerName,
|
||||
style = TangemTheme.typography.caption2,
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
modifier = Modifier.testTag(OnrampOffersBlockTestTags.PROVIDER_NAME),
|
||||
)
|
||||
|
||||
SpacerWMax()
|
||||
|
|
@ -243,12 +251,15 @@ private fun PaymentBlockInOffer(paymentMethod: OnrampPaymentMethod, providerName
|
|||
text = stringResourceSafe(R.string.onramp_pay_with),
|
||||
style = TangemTheme.typography.caption2,
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
modifier = Modifier.testTag(OnrampOffersBlockTestTags.PAY_WITH),
|
||||
)
|
||||
|
||||
SpacerW(4.dp)
|
||||
|
||||
SubcomposeAsyncImage(
|
||||
modifier = Modifier.sizeIn(maxWidth = 38.dp, maxHeight = 16.dp),
|
||||
modifier = Modifier
|
||||
.sizeIn(maxWidth = 38.dp, maxHeight = 16.dp)
|
||||
.testTag(OnrampOffersBlockTestTags.PAYMENT_METHOD_ICON),
|
||||
model = ImageRequest.Builder(context = LocalContext.current)
|
||||
.data(paymentMethod.imageUrl)
|
||||
.crossfade(enable = true)
|
||||
|
|
@ -298,6 +309,7 @@ internal fun TimingBlock(speed: PaymentMethodType.PaymentSpeed) {
|
|||
text = timingText,
|
||||
style = TangemTheme.typography.caption2,
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
modifier = Modifier.testTag(OnrampOffersBlockTestTags.TIMING_TEXT),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,13 +11,11 @@ import androidx.compose.runtime.remember
|
|||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.platform.testTag
|
||||
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig
|
||||
import com.tangem.core.ui.components.bottomsheets.sheet.TangemBottomSheet
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.core.ui.extensions.selectedBorder
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.test.SelectPaymentMethodBottomSheetTestTags
|
||||
import com.tangem.features.onramp.impl.R
|
||||
import com.tangem.features.onramp.paymentmethod.entity.PaymentMethodUM
|
||||
import com.tangem.features.onramp.paymentmethod.entity.PaymentMethodsBottomSheetConfig
|
||||
|
|
@ -51,7 +49,7 @@ private fun SelectPaymentMethodBottomSheetContent(
|
|||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
LazyColumn(
|
||||
modifier = modifier.testTag(SelectPaymentMethodBottomSheetTestTags.LAZY_LIST),
|
||||
modifier = modifier,
|
||||
) {
|
||||
items(
|
||||
items = methods,
|
||||
|
|
@ -90,7 +88,6 @@ private fun PaymentMethodItem(paymentMethod: PaymentMethodUM, isSelected: Boolea
|
|||
) {
|
||||
PaymentMethodIcon(
|
||||
imageUrl = paymentMethod.imageUrl,
|
||||
modifier = Modifier.testTag(SelectPaymentMethodBottomSheetTestTags.PAYMENT_METHOD_ICON),
|
||||
)
|
||||
Text(
|
||||
text = paymentMethod.name,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue