Updated on 2026-08-14
This commit is contained in:
parent
e376a88b44
commit
d4e8d3f45f
10 changed files with 134 additions and 45 deletions
|
|
@ -10,6 +10,7 @@ internal sealed class YieldSupplyUM {
|
|||
|
||||
data class Available(
|
||||
val apy: String,
|
||||
val apyText: TextReference,
|
||||
val title: TextReference,
|
||||
val onClick: () -> Unit,
|
||||
) : YieldSupplyUM()
|
||||
|
|
|
|||
|
|
@ -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}%"),
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -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(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue