diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/WalletPreviewData.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/WalletPreviewData.kt index 5a6d5f2a5c..30b447e54c 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/WalletPreviewData.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/common/WalletPreviewData.kt @@ -323,7 +323,7 @@ internal object WalletPreviewData { persistentListOf( WalletManageButton.Buy(enabled = true, onClick = {}), WalletManageButton.Send(enabled = true, onClick = {}), - WalletManageButton.Receive(onClick = {}), + WalletManageButton.Receive(enabled = true, onClick = {}), WalletManageButton.Sell(enabled = true, onClick = {}), WalletManageButton.Swap(enabled = true, onClick = {}), ) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/components/WalletManageButton.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/components/WalletManageButton.kt index 18b589196a..fabf18401f 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/components/WalletManageButton.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/components/WalletManageButton.kt @@ -15,6 +15,9 @@ import com.tangem.feature.wallet.impl.R @Immutable internal sealed class WalletManageButton(val config: ActionButtonConfig) { + /** Is click enabled */ + abstract val enabled: Boolean + /** Lambda be invoked when manage button is clicked */ abstract val onClick: () -> Unit @@ -24,7 +27,7 @@ internal sealed class WalletManageButton(val config: ActionButtonConfig) { * @property enabled button click availability * @property onClick lambda be invoked when Buy button is clicked */ - data class Buy(val enabled: Boolean, override val onClick: () -> Unit) : WalletManageButton( + data class Buy(override val enabled: Boolean, override val onClick: () -> Unit) : WalletManageButton( config = ActionButtonConfig( text = TextReference.Res(id = R.string.common_buy), iconResId = R.drawable.ic_plus_24, @@ -39,7 +42,7 @@ internal sealed class WalletManageButton(val config: ActionButtonConfig) { * @property enabled button click availability * @property onClick lambda be invoked when Send button is clicked */ - data class Send(val enabled: Boolean, override val onClick: () -> Unit) : WalletManageButton( + data class Send(override val enabled: Boolean, override val onClick: () -> Unit) : WalletManageButton( config = ActionButtonConfig( text = TextReference.Res(id = R.string.common_send), iconResId = R.drawable.ic_arrow_up_24, @@ -53,12 +56,12 @@ internal sealed class WalletManageButton(val config: ActionButtonConfig) { * * @property onClick lambda be invoked when Receive button is clicked */ - data class Receive(override val onClick: () -> Unit) : WalletManageButton( + data class Receive(override val enabled: Boolean, override val onClick: () -> Unit) : WalletManageButton( config = ActionButtonConfig( text = TextReference.Res(id = R.string.common_receive), iconResId = R.drawable.ic_arrow_down_24, onClick = onClick, - enabled = true, + enabled = enabled, ), ) @@ -68,7 +71,7 @@ internal sealed class WalletManageButton(val config: ActionButtonConfig) { * @property enabled button click availability * @property onClick lambda be invoked when Sell button is clicked */ - data class Sell(val enabled: Boolean, override val onClick: () -> Unit) : WalletManageButton( + data class Sell(override val enabled: Boolean, override val onClick: () -> Unit) : WalletManageButton( config = ActionButtonConfig( text = TextReference.Res(id = R.string.common_sell), iconResId = R.drawable.ic_currency_24, @@ -83,7 +86,7 @@ internal sealed class WalletManageButton(val config: ActionButtonConfig) { * @property enabled button click availability * @property onClick lambda be invoked when Swap button is clicked */ - data class Swap(val enabled: Boolean, override val onClick: () -> Unit) : WalletManageButton( + data class Swap(override val enabled: Boolean, override val onClick: () -> Unit) : WalletManageButton( config = ActionButtonConfig( text = TextReference.Res(id = R.string.common_swap), iconResId = R.drawable.ic_exchange_vertical_24, diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletCryptoCurrencyActionsConverter.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletCryptoCurrencyActionsConverter.kt index b0a13a51de..01646a2c43 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletCryptoCurrencyActionsConverter.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletCryptoCurrencyActionsConverter.kt @@ -42,6 +42,7 @@ internal class WalletCryptoCurrencyActionsConverter( } is TokenActionsState.ActionState.Receive -> { WalletManageButton.Receive( + enabled = action.enabled, onClick = { clickIntents.onReceiveClick(cryptoCurrencyStatus) }, ) } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletLockedConverter.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletLockedConverter.kt index 8007a4cf4d..1f5766008f 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletLockedConverter.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletLockedConverter.kt @@ -72,7 +72,7 @@ internal class WalletLockedConverter( is WalletManageButton.Sell -> button.copy(enabled = false) is WalletManageButton.Send -> button.copy(enabled = false) is WalletManageButton.Swap -> button.copy(enabled = false) - is WalletManageButton.Receive -> button + is WalletManageButton.Receive -> button.copy(enabled = false) } } .toPersistentList() diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletSkeletonStateConverter.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletSkeletonStateConverter.kt index 974d4c6aad..f34e374e45 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletSkeletonStateConverter.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/factory/WalletSkeletonStateConverter.kt @@ -148,7 +148,7 @@ internal class WalletSkeletonStateConverter( return persistentListOf( WalletManageButton.Buy(enabled = false, onClick = {}), WalletManageButton.Send(enabled = false, onClick = {}), - WalletManageButton.Receive(onClick = {}), + WalletManageButton.Receive(enabled = false, onClick = {}), WalletManageButton.Sell(enabled = false, onClick = {}), ) }