Updated on 2026-08-14
This commit is contained in:
parent
323458a792
commit
cf6a14d262
5 changed files with 18 additions and 14 deletions
|
|
@ -9,8 +9,8 @@ import kotlinx.collections.immutable.ImmutableList
|
|||
*/
|
||||
sealed interface TokenItemState {
|
||||
|
||||
/** Token name */
|
||||
val name: String
|
||||
/** Token full name (name with symbol) */
|
||||
val fullName: String
|
||||
|
||||
/** Token icon url */
|
||||
val iconUrl: String
|
||||
|
|
@ -21,12 +21,12 @@ sealed interface TokenItemState {
|
|||
/**
|
||||
* Token item state that is available for read
|
||||
*
|
||||
* @property name token name
|
||||
* @property fullName token name
|
||||
* @property iconUrl token icon url
|
||||
* @property networks list of networks that is available for read
|
||||
*/
|
||||
data class ReadContent(
|
||||
override val name: String,
|
||||
override val fullName: String,
|
||||
override val iconUrl: String,
|
||||
override val networks: ImmutableList<NetworkItemState.ReadContent>,
|
||||
) : TokenItemState
|
||||
|
|
@ -34,17 +34,19 @@ sealed interface TokenItemState {
|
|||
/**
|
||||
* Token item state that is available for read and manage
|
||||
*
|
||||
* @property name token name
|
||||
* @property fullName token name
|
||||
* @property iconUrl token icon url
|
||||
* @property networks list of networks is available for read and edit
|
||||
* @property id token id
|
||||
* @property name token name
|
||||
* @property symbol token brief name
|
||||
*/
|
||||
data class ManageContent(
|
||||
override val name: String,
|
||||
override val fullName: String,
|
||||
override val iconUrl: String,
|
||||
override val networks: ImmutableList<NetworkItemState.ManageContent>,
|
||||
val id: String,
|
||||
val name: String,
|
||||
val symbol: String,
|
||||
) : TokenItemState
|
||||
}
|
||||
|
|
@ -60,7 +60,7 @@ internal fun TokenItem(model: TokenItemState) {
|
|||
val spacing6 = TangemTheme.dimens.spacing6
|
||||
|
||||
Icon(
|
||||
name = model.name,
|
||||
name = model.fullName,
|
||||
iconUrl = model.iconUrl,
|
||||
modifier = Modifier.constrainAs(icon) {
|
||||
top.linkTo(parent.top)
|
||||
|
|
@ -69,7 +69,7 @@ internal fun TokenItem(model: TokenItemState) {
|
|||
)
|
||||
|
||||
Title(
|
||||
title = model.name,
|
||||
title = model.fullName,
|
||||
modifier = Modifier.constrainAs(title) {
|
||||
top.linkTo(parent.top)
|
||||
start.linkTo(icon.end, margin = spacing16)
|
||||
|
|
|
|||
|
|
@ -15,17 +15,18 @@ object TokenListPreviewData {
|
|||
|
||||
fun createManageToken(): TokenItemState.ManageContent {
|
||||
return TokenItemState.ManageContent(
|
||||
name = "Tether (USDT)",
|
||||
fullName = "Tether (USDT)",
|
||||
iconUrl = "https://s3.eu-central-1.amazonaws.com/tangem.api/coins/large/tether.png",
|
||||
networks = createManageNetworksList(),
|
||||
id = "",
|
||||
name = "Tether",
|
||||
symbol = "",
|
||||
)
|
||||
}
|
||||
|
||||
fun createReadToken(): TokenItemState.ReadContent {
|
||||
return TokenItemState.ReadContent(
|
||||
name = "Tether (USDT)",
|
||||
fullName = "Tether (USDT)",
|
||||
iconUrl = "https://s3.eu-central-1.amazonaws.com/tangem.api/coins/large/tether.png",
|
||||
networks = createReadNetworksList(),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ private fun TokensListContent(
|
|||
item { DifferentAddressesWarning() }
|
||||
}
|
||||
|
||||
items(items = tokens, key = TokenItemState::name) {
|
||||
items(items = tokens, key = TokenItemState::fullName) {
|
||||
it?.let { TokenItem(model = it) }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -126,10 +126,11 @@ internal class TokensListViewModel @Inject constructor(
|
|||
|
||||
private fun createManageTokenContent(token: Token): TokenItemState.ManageContent {
|
||||
return TokenItemState.ManageContent(
|
||||
name = getTokenName(token),
|
||||
fullName = getTokenFullName(token),
|
||||
iconUrl = token.iconUrl,
|
||||
networks = token.networks.map(::createManageNetworkContent).toImmutableList(),
|
||||
id = token.id,
|
||||
name = token.name,
|
||||
symbol = token.symbol,
|
||||
)
|
||||
}
|
||||
|
|
@ -156,7 +157,7 @@ internal class TokensListViewModel @Inject constructor(
|
|||
|
||||
private fun createReadTokenContent(token: Token): TokenItemState.ReadContent {
|
||||
return TokenItemState.ReadContent(
|
||||
name = getTokenName(token),
|
||||
fullName = getTokenFullName(token),
|
||||
iconUrl = token.iconUrl,
|
||||
networks = token.networks.map(::createReadNetworkContent).toImmutableList(),
|
||||
)
|
||||
|
|
@ -171,7 +172,7 @@ internal class TokensListViewModel @Inject constructor(
|
|||
)
|
||||
}
|
||||
|
||||
private fun getTokenName(token: Token) = "${token.name} (${token.symbol})"
|
||||
private fun getTokenFullName(token: Token) = "${token.name} (${token.symbol})"
|
||||
|
||||
private fun getNetworkProtocolName(network: Network): String {
|
||||
return if (network.address == null) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue