Updated on 2026-08-14

This commit is contained in:
Tangem 2025-10-27 16:54:41 +05:00
parent e376a88b44
commit d4e8d3f45f
10 changed files with 134 additions and 45 deletions

View file

@ -10,6 +10,7 @@ internal sealed class YieldSupplyUM {
data class Available(
val apy: String,
val apyText: TextReference,
val title: TextReference,
val onClick: () -> Unit,
) : YieldSupplyUM()

View file

@ -1,10 +1,11 @@
package com.tangem.features.yield.supply.impl.main.model.transformers
import com.tangem.core.ui.extensions.combinedReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringReference
import com.tangem.domain.yield.supply.models.YieldMarketToken
import com.tangem.features.yield.supply.impl.R
import com.tangem.features.yield.supply.impl.main.entity.YieldSupplyUM
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.wrappedList
import com.tangem.domain.yield.supply.models.YieldMarketToken
import com.tangem.utils.transformer.Transformer
internal class YieldSupplyTokenStatusSuccessTransformer(
@ -16,12 +17,15 @@ internal class YieldSupplyTokenStatusSuccessTransformer(
if (!tokenStatus.isActive) return YieldSupplyUM.Unavailable
return YieldSupplyUM.Available(
title = resourceReference(
id = R.string.yield_module_token_details_earn_notification_title,
formatArgs = wrappedList(tokenStatus.apy),
),
title = resourceReference(R.string.yield_module_token_details_earn_notification_title),
onClick = onStartEarningClick,
apy = tokenStatus.apy.toString(),
apyText = combinedReference(
resourceReference(
R.string.yield_module_token_details_earn_notification_apy,
),
stringReference(" ${tokenStatus.apy}%"),
),
)
}
}

View file

@ -62,8 +62,9 @@ internal fun YieldSupplyBlockContent(yieldSupplyUM: YieldSupplyUM, modifier: Mod
@Composable
private fun SupplyAvailable(supplyUM: YieldSupplyUM.Available, modifier: Modifier = Modifier) {
SupplyInfo(
title = supplyUM.title,
subtitle = resourceReference(R.string.yield_module_token_details_earn_notification_description),
title = resourceReference(R.string.yield_module_token_details_earn_notification_earning_on_your_balance_title),
subtitle = supplyUM.title,
rewardsApy = supplyUM.apyText,
iconTint = TangemTheme.colors.icon.accent,
modifier = modifier,
button = {
@ -82,6 +83,7 @@ private fun SupplyUnavailable(modifier: Modifier = Modifier) {
SupplyInfo(
title = resourceReference(R.string.yield_module_unavailable_title),
subtitle = resourceReference(R.string.yield_module_unavailable_subtitle),
rewardsApy = null,
iconTint = TangemTheme.colors.icon.inactive,
button = null,
modifier = modifier,
@ -249,6 +251,7 @@ private fun SupplyLoading(modifier: Modifier = Modifier) {
private fun SupplyInfo(
title: TextReference,
subtitle: TextReference,
rewardsApy: TextReference?,
iconTint: Color,
modifier: Modifier = Modifier,
button: (@Composable () -> Unit)? = null,
@ -264,6 +267,7 @@ private fun SupplyInfo(
Row(
horizontalArrangement = Arrangement.spacedBy(10.dp),
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.fillMaxWidth(),
) {
Icon(
imageVector = ImageVector.vectorResource(R.drawable.ic_analytics_up_24),
@ -277,11 +281,28 @@ private fun SupplyInfo(
Column(
verticalArrangement = Arrangement.spacedBy(2.dp),
) {
Text(
text = title.resolveReference(),
style = TangemTheme.typography.button,
color = TangemTheme.colors.text.primary1,
)
Row(
horizontalArrangement = Arrangement.spacedBy(4.dp),
) {
Text(
text = title.resolveReference(),
style = TangemTheme.typography.subtitle2,
color = TangemTheme.colors.text.primary1,
)
if (rewardsApy != null) {
Text(
text = StringsSigns.DOT,
style = TangemTheme.typography.subtitle1,
color = TangemTheme.colors.text.tertiary,
)
Text(
text = rewardsApy.resolveReference(),
style = TangemTheme.typography.subtitle1,
maxLines = 1,
color = TangemTheme.colors.text.accent,
)
}
}
Text(
text = subtitle.resolveReference(),
style = TangemTheme.typography.caption2,
@ -312,6 +333,7 @@ private class PreviewProvider : PreviewParameterProvider<YieldSupplyUM> {
wrappedList("5.1"),
),
apy = "5.1",
apyText = stringReference("5.1 % APY"),
onClick = {},
),
YieldSupplyUM.Content(