Updated on 2026-08-14
This commit is contained in:
parent
e225af5b30
commit
3d3a7771a5
4 changed files with 31 additions and 14 deletions
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
)
|
||||
|
|
@ -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,
|
||||
)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue