Updated on 2026-08-14

This commit is contained in:
Tangem 2025-08-18 19:52:11 +05:00
parent 94196d74c4
commit f7bd99f737
14 changed files with 527 additions and 77 deletions

View file

@ -2,8 +2,9 @@ package com.tangem.features.nft.component
import com.tangem.core.decompose.factory.ComponentFactory
import com.tangem.core.ui.decompose.ComposableContentComponent
import com.tangem.domain.nft.models.NFTAsset
import com.tangem.core.ui.extensions.TextReference
import com.tangem.domain.models.wallet.UserWalletId
import com.tangem.domain.nft.models.NFTAsset
interface NFTDetailsBlockComponent : ComposableContentComponent {
@ -11,6 +12,8 @@ interface NFTDetailsBlockComponent : ComposableContentComponent {
val userWalletId: UserWalletId,
val nftAsset: NFTAsset,
val nftCollectionName: String,
val title: TextReference,
val isSuccessScreen: Boolean,
)
interface Factory : ComponentFactory<Params, NFTDetailsBlockComponent>

View file

@ -22,6 +22,8 @@ class DefaultNFTDetailsBlockComponent @AssistedInject constructor(
assetName = stringReference(params.nftAsset.name.orEmpty()),
collectionName = stringReference(params.nftCollectionName),
assetImage = params.nftAsset.media?.imageUrl,
title = params.title,
isSuccessScreen = params.isSuccessScreen,
networkIconRes = getActiveIconRes(params.nftAsset.network.rawId),
)
}

View file

@ -11,6 +11,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.tangem.core.ui.components.SpacerWMax
import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resolveReference
import com.tangem.core.ui.extensions.stringReference
@ -19,12 +20,15 @@ import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.features.nft.common.ui.NFTLogo
import com.tangem.features.nft.impl.R
@Suppress("LongParameterList")
@Composable
internal fun NFTDetailsBlock(
title: TextReference,
assetName: TextReference,
collectionName: TextReference,
assetImage: String?,
networkIconRes: Int,
isSuccessScreen: Boolean,
) {
Column(
modifier = Modifier
@ -35,20 +39,21 @@ internal fun NFTDetailsBlock(
verticalArrangement = Arrangement.spacedBy(6.dp),
) {
Text(
text = "NFT Asset",
text = title.resolveReference(),
style = TangemTheme.typography.subtitle2,
color = TangemTheme.colors.text.secondary,
color = TangemTheme.colors.text.tertiary,
)
Row(
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(12.dp),
) {
NFTLogo(
assetImage,
networkIconRes,
background = TangemTheme.colors.background.action,
)
if (isSuccessScreen) {
NFTLogo(
assetImage,
networkIconRes,
background = TangemTheme.colors.background.action,
)
}
Column(
verticalArrangement = Arrangement.spacedBy(2.dp),
) {
@ -63,6 +68,14 @@ internal fun NFTDetailsBlock(
color = TangemTheme.colors.text.tertiary,
)
}
if (!isSuccessScreen) {
SpacerWMax()
NFTLogo(
assetImage,
networkIconRes,
background = TangemTheme.colors.background.action,
)
}
}
}
}
@ -78,6 +91,8 @@ private fun NFTDetailsBlock_Preview() {
collectionName = stringReference("NFT Collection"),
assetImage = null,
networkIconRes = R.drawable.img_polygon_22,
title = stringReference("From My Wallet"),
isSuccessScreen = false,
)
}
}