Updated on 2026-08-14
This commit is contained in:
parent
ba4d0ad4ce
commit
5c5c31dfc0
4 changed files with 22 additions and 0 deletions
|
|
@ -1,12 +1,23 @@
|
|||
package com.tangem.features.walletconnect.transaction.entity.common
|
||||
|
||||
import com.tangem.core.decompose.ui.UiMessageSender
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.stringReference
|
||||
import com.tangem.core.ui.message.ToastMessage
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
|
||||
internal interface WcCommonTransactionModel {
|
||||
|
||||
val uiState: StateFlow<WcCommonTransactionUM?>
|
||||
|
||||
val messageSender: UiMessageSender
|
||||
|
||||
fun dismiss()
|
||||
|
||||
fun popBack()
|
||||
|
||||
// TODO: [REDACTED_JIRA]
|
||||
fun showSuccessSignMessage(message: TextReference = stringReference("Successfully signed")) {
|
||||
messageSender.send(ToastMessage(message = message))
|
||||
}
|
||||
}
|
||||
|
|
@ -7,6 +7,7 @@ import com.tangem.core.decompose.di.ModelScoped
|
|||
import com.tangem.core.decompose.model.Model
|
||||
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.ui.clipboard.ClipboardManager
|
||||
import com.tangem.domain.walletconnect.WcRequestUseCaseFactory
|
||||
import com.tangem.domain.walletconnect.usecase.method.WcAddNetworkUseCase
|
||||
|
|
@ -24,10 +25,12 @@ import kotlinx.coroutines.flow.update
|
|||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
@Suppress("LongParameterList")
|
||||
@Stable
|
||||
@ModelScoped
|
||||
internal class WcAddNetworkModel @Inject constructor(
|
||||
paramsContainer: ParamsContainer,
|
||||
override val messageSender: UiMessageSender,
|
||||
override val dispatchers: CoroutineDispatcherProvider,
|
||||
private val router: Router,
|
||||
private val clipboardManager: ClipboardManager,
|
||||
|
|
@ -83,6 +86,7 @@ internal class WcAddNetworkModel @Inject constructor(
|
|||
modelScope.launch {
|
||||
_uiState.update { it?.copy(transaction = it.transaction.copy(isLoading = true)) }
|
||||
useCase.approve().getOrNull()?.let {
|
||||
showSuccessSignMessage()
|
||||
router.pop()
|
||||
} ?: run {
|
||||
_uiState.update { it?.copy(transaction = it.transaction.copy(isLoading = false)) }
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ import com.tangem.core.decompose.di.ModelScoped
|
|||
import com.tangem.core.decompose.model.Model
|
||||
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.ui.clipboard.ClipboardManager
|
||||
import com.tangem.core.ui.extensions.stringReference
|
||||
import com.tangem.domain.core.lce.Lce
|
||||
|
|
@ -55,6 +56,7 @@ import kotlin.properties.Delegates
|
|||
@ModelScoped
|
||||
internal class WcSendTransactionModel @Inject constructor(
|
||||
paramsContainer: ParamsContainer,
|
||||
override val messageSender: UiMessageSender,
|
||||
override val dispatchers: CoroutineDispatcherProvider,
|
||||
private val feeSelectorReloadTrigger: FeeSelectorReloadTrigger,
|
||||
private val router: Router,
|
||||
|
|
@ -296,6 +298,7 @@ internal class WcSendTransactionModel @Inject constructor(
|
|||
)
|
||||
stackNavigation.pushNew(WcTransactionRoutes.Alert(error))
|
||||
} else {
|
||||
showSuccessSignMessage()
|
||||
router.pop()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.tangem.core.decompose.di.ModelScoped
|
|||
import com.tangem.core.decompose.model.Model
|
||||
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.ui.clipboard.ClipboardManager
|
||||
import com.tangem.domain.walletconnect.WcRequestUseCaseFactory
|
||||
import com.tangem.domain.walletconnect.usecase.method.WcMessageSignUseCase
|
||||
|
|
@ -29,10 +30,12 @@ import kotlinx.coroutines.flow.onEach
|
|||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
|
||||
@Suppress("LongParameterList")
|
||||
@Stable
|
||||
@ModelScoped
|
||||
internal class WcSignTransactionModel @Inject constructor(
|
||||
paramsContainer: ParamsContainer,
|
||||
override val messageSender: UiMessageSender,
|
||||
override val dispatchers: CoroutineDispatcherProvider,
|
||||
private val router: Router,
|
||||
private val clipboardManager: ClipboardManager,
|
||||
|
|
@ -91,6 +94,7 @@ internal class WcSignTransactionModel @Inject constructor(
|
|||
|
||||
private fun signingIsDone(signState: WcSignState<*>): Boolean {
|
||||
(signState.domainStep as? WcSignStep.Result)?.result?.let {
|
||||
showSuccessSignMessage()
|
||||
router.pop()
|
||||
return true
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue