Updated on 2026-08-14
This commit is contained in:
parent
bfdb3a2966
commit
1b5feacdf6
3 changed files with 35 additions and 6 deletions
|
|
@ -2,4 +2,5 @@ package com.tangem.features.onramp.success.entity
|
|||
|
||||
interface OnrampSuccessClickIntents {
|
||||
fun goToProviderClick(providerLink: String)
|
||||
fun onCopyClick(copiedText: String)
|
||||
}
|
||||
|
|
@ -25,6 +25,7 @@ internal class SetOnrampSuccessContentConverter(
|
|||
private val cryptoCurrency: CryptoCurrency,
|
||||
private val transaction: OnrampTransaction,
|
||||
private val goToProviderClick: (String) -> Unit,
|
||||
private val onCopyClick: (String) -> Unit,
|
||||
) : Converter<OnrampStatus, OnrampSuccessComponentUM> {
|
||||
override fun convert(value: OnrampStatus): OnrampSuccessComponentUM {
|
||||
return OnrampSuccessComponentUM.Content(
|
||||
|
|
@ -46,8 +47,12 @@ internal class SetOnrampSuccessContentConverter(
|
|||
),
|
||||
providerName = stringReference(transaction.providerName),
|
||||
providerImageUrl = transaction.providerImageUrl,
|
||||
statusBlock = convertStatuses(value.status, value.externalTxUrl),
|
||||
notification = getNotification(value.status, value.externalTxUrl),
|
||||
statusBlock = convertStatuses(
|
||||
status = value.status,
|
||||
externalTxId = value.externalTxId,
|
||||
externalTxUrl = value.externalTxUrl,
|
||||
),
|
||||
notification = getNotification(status = value.status, externalTxUrl = value.externalTxUrl),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
@ -73,7 +78,11 @@ internal class SetOnrampSuccessContentConverter(
|
|||
null
|
||||
}
|
||||
|
||||
private fun convertStatuses(status: OnrampStatus.Status, externalTxUrl: String?): ExpressStatusUM {
|
||||
private fun convertStatuses(
|
||||
status: OnrampStatus.Status,
|
||||
externalTxId: String?,
|
||||
externalTxUrl: String?,
|
||||
): ExpressStatusUM {
|
||||
val statuses = with(status) {
|
||||
persistentListOf(
|
||||
getAwaitingDepositItem(),
|
||||
|
|
@ -85,7 +94,7 @@ internal class SetOnrampSuccessContentConverter(
|
|||
|
||||
return ExpressStatusUM(
|
||||
title = resourceReference(R.string.common_transaction_status),
|
||||
link = getStatusLink(status, externalTxUrl),
|
||||
link = getStatusLink(status = status, externalTxId = externalTxId, externalTxUrl = externalTxUrl),
|
||||
statuses = statuses,
|
||||
)
|
||||
}
|
||||
|
|
@ -183,7 +192,11 @@ internal class SetOnrampSuccessContentConverter(
|
|||
state = getStatusState(OnrampStatus.Status.Sending),
|
||||
)
|
||||
|
||||
private fun getStatusLink(status: OnrampStatus.Status, externalTxUrl: String?): ExpressLinkUM {
|
||||
private fun getStatusLink(
|
||||
status: OnrampStatus.Status,
|
||||
externalTxId: String?,
|
||||
externalTxUrl: String?,
|
||||
): ExpressLinkUM {
|
||||
if (externalTxUrl == null) return ExpressLinkUM.Empty
|
||||
return when (status) {
|
||||
OnrampStatus.Status.Verifying,
|
||||
|
|
@ -197,7 +210,15 @@ internal class SetOnrampSuccessContentConverter(
|
|||
},
|
||||
)
|
||||
}
|
||||
else -> ExpressLinkUM.Empty
|
||||
else -> if (externalTxId != null) {
|
||||
ExpressLinkUM.Content(
|
||||
icon = R.drawable.ic_copy_24,
|
||||
text = resourceReference(R.string.express_transaction_id, wrappedList(externalTxId)),
|
||||
onClick = { onCopyClick(externalTxId) },
|
||||
)
|
||||
} else {
|
||||
ExpressLinkUM.Empty
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import com.tangem.core.decompose.model.ParamsContainer
|
|||
import com.tangem.core.decompose.navigation.Router
|
||||
import com.tangem.core.decompose.ui.UiMessageSender
|
||||
import com.tangem.core.navigation.url.UrlOpener
|
||||
import com.tangem.core.ui.clipboard.ClipboardManager
|
||||
import com.tangem.core.ui.extensions.resourceReference
|
||||
import com.tangem.core.ui.extensions.wrappedList
|
||||
import com.tangem.core.ui.message.DialogMessage
|
||||
|
|
@ -46,6 +47,7 @@ internal class OnrampSuccessComponentModel @Inject constructor(
|
|||
private val getUserWalletUseCase: GetUserWalletUseCase,
|
||||
private val analyticsEventHandler: AnalyticsEventHandler,
|
||||
private val messageSender: UiMessageSender,
|
||||
private val clipboardManager: ClipboardManager,
|
||||
private val router: Router,
|
||||
paramsContainer: ParamsContainer,
|
||||
) : Model(), OnrampSuccessClickIntents {
|
||||
|
|
@ -65,6 +67,10 @@ internal class OnrampSuccessComponentModel @Inject constructor(
|
|||
urlOpener.openUrl(providerLink)
|
||||
}
|
||||
|
||||
override fun onCopyClick(copiedText: String) {
|
||||
clipboardManager.setText(text = copiedText, isSensitive = false)
|
||||
}
|
||||
|
||||
private fun loadData() {
|
||||
modelScope.launch {
|
||||
getOnrampTransactionUseCase(txId = params.txId)
|
||||
|
|
@ -124,6 +130,7 @@ internal class OnrampSuccessComponentModel @Inject constructor(
|
|||
cryptoCurrency = cryptoCurrency,
|
||||
transaction = transaction,
|
||||
goToProviderClick = ::goToProviderClick,
|
||||
onCopyClick = ::onCopyClick,
|
||||
).convert(status)
|
||||
}
|
||||
removeTransactionIfTerminalStatus(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue