Updated on 2026-08-14

This commit is contained in:
Tangem 2025-07-09 14:22:35 +04:00
parent e225af5b30
commit 3d3a7771a5
4 changed files with 31 additions and 14 deletions

View file

@ -115,6 +115,7 @@ private fun WcSelectNetworksBS(
.fillMaxWidth(),
text = "Done",
onClick = state.onDone,
enabled = state.doneButtonEnabled,
)
},
)
@ -216,13 +217,14 @@ private fun NetworkItems(networkItem: WcNetworkInfoItem, modifier: Modifier = Mo
when (networkItem) {
is WcNetworkInfoItem.Checkable,
is WcNetworkInfoItem.Checked,
is WcNetworkInfoItem.Required,
-> Image(
modifier = Modifier.size(24.dp),
painter = painterResource(networkItem.icon),
contentDescription = null,
)
is WcNetworkInfoItem.ReadOnly -> Icon(
is WcNetworkInfoItem.Required,
is WcNetworkInfoItem.ReadOnly,
-> Icon(
modifier = Modifier
.size(24.dp)
.clip(CircleShape)
@ -240,20 +242,28 @@ private fun NetworkItems(networkItem: WcNetworkInfoItem, modifier: Modifier = Mo
symbol = networkItem.symbol,
)
when (networkItem) {
is WcNetworkInfoItem.Checkable -> TangemSwitch(
onCheckedChange = networkItem.onCheckedChange,
checked = networkItem.checked,
)
is WcNetworkInfoItem.Checkable -> {
if (networkItem.enabled) {
TangemSwitch(
onCheckedChange = networkItem.onCheckedChange,
checked = networkItem.checked,
)
}
}
is WcNetworkInfoItem.Required -> Text(
text = "Required",
style = TangemTheme.typography.body2,
color = TangemTheme.colors.text.tertiary,
)
is WcNetworkInfoItem.Checked -> TangemSwitch(
onCheckedChange = {},
enabled = false,
checked = true,
)
is WcNetworkInfoItem.Checked -> {
if (networkItem.enabled) {
TangemSwitch(
onCheckedChange = {},
enabled = false,
checked = true,
)
}
}
is WcNetworkInfoItem.ReadOnly -> Unit
}
}
@ -320,13 +330,13 @@ private class WcSelectNetworksProvider : CollectionPreviewParameterProvider<WcSe
id = "ethereum",
name = "EthereumEthereumEthereumEthereumEthereumEthereumEthereumEthereum",
symbol = "ETH",
icon = R.drawable.img_eth_22,
icon = R.drawable.ic_solana_16,
),
WcNetworkInfoItem.Required(
id = "bitcoin",
name = "Bitcoin",
symbol = "BTC",
icon = R.drawable.img_btc_22,
icon = R.drawable.ic_avalanche_22,
),
),
required = persistentListOf(

View file

@ -22,6 +22,7 @@ sealed class WcNetworkInfoItem {
override val icon: Int,
override val name: String,
override val symbol: String,
val enabled: Boolean = true,
) : WcNetworkInfoItem()
data class Checkable(
@ -31,6 +32,7 @@ sealed class WcNetworkInfoItem {
override val symbol: String,
val checked: Boolean,
val onCheckedChange: (Boolean) -> Unit,
val enabled: Boolean = true,
) : WcNetworkInfoItem()
data class ReadOnly(

View file

@ -8,4 +8,5 @@ internal data class WcSelectNetworksUM(
val available: ImmutableList<WcNetworkInfoItem.Checkable>,
val notAdded: ImmutableList<WcNetworkInfoItem.ReadOnly>,
val onDone: () -> Unit,
val doneButtonEnabled: Boolean = true,
)

View file

@ -59,11 +59,12 @@ internal class WcSelectNetworksModel @Inject constructor(
}
private fun getInitialState(): WcSelectNetworksUM {
val editEnabled = params.missingRequiredNetworks.isEmpty()
return WcSelectNetworksUM(
missing = params.missingRequiredNetworks.map { network ->
WcNetworkInfoItem.Required(
id = network.rawId,
icon = network.iconResId,
icon = getGreyedOutIconRes(network.rawId),
name = network.name,
symbol = network.currencySymbol,
)
@ -74,6 +75,7 @@ internal class WcSelectNetworksModel @Inject constructor(
icon = network.iconResId,
name = network.name,
symbol = network.currencySymbol,
enabled = editEnabled,
)
}.toImmutableList(),
available = params.availableNetworks.map { network ->
@ -84,6 +86,7 @@ internal class WcSelectNetworksModel @Inject constructor(
symbol = network.currencySymbol,
checked = network in additionallyEnabledNetworks.value,
onCheckedChange = { onCheckedChange(it, network) },
enabled = editEnabled,
)
}.toImmutableList(),
notAdded = params.notAddedNetworks.map { network ->
@ -95,6 +98,7 @@ internal class WcSelectNetworksModel @Inject constructor(
)
}.toImmutableList(),
onDone = ::onDone,
doneButtonEnabled = editEnabled,
)
}
}