Updated on 2026-08-14

This commit is contained in:
Tangem 2026-03-20 15:27:00 +03:00
parent 2a1369fce6
commit 5a99de87fb
29 changed files with 194 additions and 47 deletions

View file

@ -15,7 +15,6 @@ import com.tangem.core.decompose.navigation.inner.InnerRouter
import com.tangem.core.ui.components.bottomsheets.message.MessageBottomSheetUM
import com.tangem.core.ui.decompose.ComposableBottomSheetComponent
import com.tangem.core.ui.decompose.ComposableContentComponent
import com.tangem.domain.models.wallet.UserWalletId
import com.tangem.domain.walletconnect.model.WcPairRequest
import com.tangem.features.account.PortfolioSelectorComponent
import com.tangem.features.walletconnect.connections.model.WcPairModel
@ -127,5 +126,7 @@ internal class WcPairComponent(
}
}
data class Params(val userWalletId: UserWalletId, val wcUrl: String, val source: WcPairRequest.Source)
data class Params(
val request: WcPairRequest,
)
}

View file

@ -86,6 +86,7 @@ internal class WcConnectionsModel @Inject constructor(
userWalletId = params.userWalletId,
uri = result.qrCode,
source = source,
screen = WcPairRequest.Screen.WALLET_CONNECT,
),
)
}

View file

@ -29,7 +29,6 @@ import com.tangem.domain.models.wallet.UserWallet
import com.tangem.domain.walletconnect.WcAnalyticEvents
import com.tangem.domain.walletconnect.model.WcPairError
import com.tangem.domain.walletconnect.model.WcPairError.Unknown
import com.tangem.domain.walletconnect.model.WcPairRequest
import com.tangem.domain.walletconnect.model.WcSessionApprove
import com.tangem.domain.walletconnect.model.WcSessionProposal
import com.tangem.domain.walletconnect.model.sdkcopy.WcAppMetaData
@ -75,13 +74,7 @@ internal class WcPairModel @Inject constructor(
) : Model(), WcPairComponentCallback {
private val params: WcPairComponent.Params = paramsContainer.require()
private val wcPairUseCase = wcPairUseCaseFactory.create(
WcPairRequest(
userWalletId = params.userWalletId,
uri = params.wcUrl,
source = params.source,
),
)
private val wcPairUseCase = wcPairUseCaseFactory.create(params.request)
val stackNavigation = StackNavigation<WcAppInfoRoutes>()
val portfolioFetcher: PortfolioFetcher = portfolioFetcherFactory.create(
@ -109,7 +102,7 @@ internal class WcPairModel @Inject constructor(
modelScope.launch {
val portfolioBalance = portfolioFetcher.data.first().balances
.firstNotNullOfOrNull { (walletId, balance) ->
if (params.userWalletId == walletId) balance else null
if (params.request.userWalletId == walletId) balance else null
}
if (portfolioBalance == null) {
router.pop()

View file

@ -89,9 +89,7 @@ internal class DefaultWcRoutingComponent @AssistedInject constructor(
appComponentContext = childContext,
portfolioSelectorComponentFactory = portfolioSelectorComponentFactory,
params = WcPairComponent.Params(
userWalletId = config.request.userWalletId,
wcUrl = config.request.uri,
source = config.request.source,
request = config.request,
),
)
is WcInnerRoute.UnsupportedMethodAlert -> AlertsComponent(