Updated on 2026-08-14
This commit is contained in:
parent
aa2439e3fa
commit
e803ab0d7d
12 changed files with 103 additions and 24 deletions
|
|
@ -7,6 +7,7 @@ internal data class WcSendReceiveTransactionCheckResultsUM(
|
|||
val estimatedWalletChanges: WcEstimatedWalletChangesUM? = null,
|
||||
val spendAllowance: WcSpendAllowanceUM? = null,
|
||||
val notification: BlockAidNotificationUM? = null,
|
||||
val additionalNotification: TextReference? = null,
|
||||
val isLoading: Boolean = true,
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
|
|||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.isNullOrEmpty
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
|
|
@ -43,8 +44,10 @@ internal fun TransactionCheckResultsItem(
|
|||
WcEstimatedWalletChangesItem(item.estimatedWalletChanges)
|
||||
} else if (item.spendAllowance != null) {
|
||||
WcSpendAllowanceItem(item.spendAllowance, onClickAllowToSpend)
|
||||
} else if (!item.additionalNotification.isNullOrEmpty()) {
|
||||
WcEstimatedWalletChangesNotificationItem(description = item.additionalNotification)
|
||||
} else {
|
||||
WcEstimatedWalletChangesNotLoadedItem()
|
||||
WcEstimatedWalletChangesNotificationItem()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ import androidx.compose.ui.draw.clip
|
|||
import androidx.compose.ui.tooling.preview.Devices
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.resolveReference
|
||||
import com.tangem.core.ui.extensions.stringResourceSafe
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
import com.tangem.core.ui.res.TangemThemePreview
|
||||
|
|
@ -19,7 +21,10 @@ import com.tangem.features.walletconnect.impl.R
|
|||
import com.tangem.features.walletconnect.transaction.ui.common.WcSmallTitleItem
|
||||
|
||||
@Composable
|
||||
internal fun WcEstimatedWalletChangesNotLoadedItem(modifier: Modifier = Modifier) {
|
||||
internal fun WcEstimatedWalletChangesNotificationItem(
|
||||
modifier: Modifier = Modifier,
|
||||
description: TextReference? = null,
|
||||
) {
|
||||
Column(
|
||||
modifier = modifier
|
||||
.clip(RoundedCornerShape(14.dp))
|
||||
|
|
@ -36,7 +41,8 @@ internal fun WcEstimatedWalletChangesNotLoadedItem(modifier: Modifier = Modifier
|
|||
modifier = modifier
|
||||
.fillMaxWidth()
|
||||
.padding(start = 12.dp, end = 12.dp, bottom = 14.dp),
|
||||
text = stringResourceSafe(R.string.wc_estimated_wallet_changes_not_simulated),
|
||||
text = description?.resolveReference()
|
||||
?: stringResourceSafe(R.string.wc_estimated_wallet_changes_not_simulated),
|
||||
color = TangemTheme.colors.text.tertiary,
|
||||
style = TangemTheme.typography.body2,
|
||||
)
|
||||
|
|
@ -52,7 +58,7 @@ private fun WcEstimatedWalletChangesNotLoadedItems() {
|
|||
modifier = Modifier
|
||||
.background(TangemTheme.colors.background.tertiary),
|
||||
) {
|
||||
WcEstimatedWalletChangesNotLoadedItem()
|
||||
WcEstimatedWalletChangesNotificationItem()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -30,6 +30,7 @@ internal class WcSendAndReceiveBlockAidUiConverter @Inject constructor(
|
|||
) : Converter<WcSendAndReceiveBlockAidUiConverter.Input, WcSendReceiveTransactionCheckResultsUM> {
|
||||
override fun convert(value: Input): WcSendReceiveTransactionCheckResultsUM {
|
||||
val description = value.result.description?.let { if (it.isNotEmpty()) TextReference.Str(it) else null }
|
||||
val simulation = value.result.simulation
|
||||
return WcSendReceiveTransactionCheckResultsUM(
|
||||
isLoading = false,
|
||||
notification = when (value.result.validation) {
|
||||
|
|
@ -45,9 +46,16 @@ internal class WcSendAndReceiveBlockAidUiConverter @Inject constructor(
|
|||
text = description,
|
||||
)
|
||||
},
|
||||
estimatedWalletChanges = (value.result.simulation as? SimulationResult.Success)?.data?.let { data ->
|
||||
additionalNotification = (simulation as? SimulationResult.Success)?.data?.let { data ->
|
||||
if (data is SimulationData.NoWalletChangesDetected) {
|
||||
TextReference.Res(R.string.wc_no_wallet_changes_detected)
|
||||
} else {
|
||||
null
|
||||
}
|
||||
},
|
||||
estimatedWalletChanges = (simulation as? SimulationResult.Success)?.data?.let { data ->
|
||||
when (data) {
|
||||
is SimulationData.Approve -> null
|
||||
is SimulationData.Approve, SimulationData.NoWalletChangesDetected -> null
|
||||
is SimulationData.SendAndReceive -> {
|
||||
val items: ImmutableList<WcEstimatedWalletChangeUM> = (
|
||||
data.send.map {
|
||||
|
|
@ -94,7 +102,7 @@ internal class WcSendAndReceiveBlockAidUiConverter @Inject constructor(
|
|||
},
|
||||
spendAllowance = (value.result.simulation as? SimulationResult.Success)?.data?.let { data ->
|
||||
when (data) {
|
||||
is SimulationData.SendAndReceive -> null
|
||||
is SimulationData.SendAndReceive, SimulationData.NoWalletChangesDetected -> null
|
||||
is SimulationData.Approve -> value.approvedAmount?.let {
|
||||
spendAllowanceUMConverter.convert(it)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue