diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/components/WcSelectNetworksComponent.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/components/WcSelectNetworksComponent.kt index 73d622b6ce..633c8859bc 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/components/WcSelectNetworksComponent.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/components/WcSelectNetworksComponent.kt @@ -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 Unit, + val enabled: Boolean = true, ) : WcNetworkInfoItem() data class ReadOnly( diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/entity/WcSelectNetworksUM.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/entity/WcSelectNetworksUM.kt index a5daa0be5a..26a00e9e6e 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/entity/WcSelectNetworksUM.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/entity/WcSelectNetworksUM.kt @@ -8,4 +8,5 @@ internal data class WcSelectNetworksUM( val available: ImmutableList, val notAdded: ImmutableList, val onDone: () -> Unit, + val doneButtonEnabled: Boolean = true, ) \ No newline at end of file diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/model/WcSelectNetworksModel.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/model/WcSelectNetworksModel.kt index c7e1f38b60..1def1766ce 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/model/WcSelectNetworksModel.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/connections/model/WcSelectNetworksModel.kt @@ -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, ) } } \ No newline at end of file