Updated on 2026-08-14
This commit is contained in:
parent
b92bb00c7f
commit
5e6bf6aaae
14 changed files with 172 additions and 109 deletions
|
|
@ -6,7 +6,6 @@ import androidx.compose.ui.Modifier
|
|||
import com.arkivanov.decompose.ComponentContext
|
||||
import com.arkivanov.decompose.extensions.compose.subscribeAsState
|
||||
import com.arkivanov.decompose.router.slot.childSlot
|
||||
import com.arkivanov.decompose.router.slot.dismiss
|
||||
import com.tangem.core.decompose.context.AppComponentContext
|
||||
import com.tangem.core.decompose.context.childByContext
|
||||
import com.tangem.core.decompose.model.getOrCreateModel
|
||||
|
|
@ -46,7 +45,7 @@ class DefaultReferralComponent @AssistedInject constructor(
|
|||
params = PortfolioSelectorComponent.Params(
|
||||
portfolioFetcher = model.portfolioFetcher,
|
||||
controller = model.portfolioSelectorController,
|
||||
onDismiss = model.bottomSheetNavigation::dismiss,
|
||||
bsCallback = model.portfolioSelectorCallback,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import androidx.compose.runtime.setValue
|
|||
import arrow.core.getOrElse
|
||||
import com.arkivanov.decompose.router.slot.SlotNavigation
|
||||
import com.arkivanov.decompose.router.slot.activate
|
||||
import com.arkivanov.decompose.router.slot.dismiss
|
||||
import com.tangem.common.routing.AppRouter
|
||||
import com.tangem.common.ui.userwallet.ext.walletInterationIcon
|
||||
import com.tangem.core.analytics.api.AnalyticsEventHandler
|
||||
|
|
@ -41,6 +42,7 @@ import com.tangem.feature.referral.models.DemoModeException
|
|||
import com.tangem.feature.referral.models.ReferralStateHolder
|
||||
import com.tangem.feature.referral.models.ReferralStateHolder.*
|
||||
import com.tangem.features.account.PortfolioFetcher
|
||||
import com.tangem.features.account.PortfolioSelectorComponent
|
||||
import com.tangem.features.account.PortfolioSelectorController
|
||||
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||
import kotlinx.coroutines.flow.*
|
||||
|
|
@ -84,6 +86,11 @@ internal class ReferralModel @Inject constructor(
|
|||
var uiState: ReferralStateHolder by mutableStateOf(createInitiallyUiState())
|
||||
private set
|
||||
|
||||
val portfolioSelectorCallback = object : PortfolioSelectorComponent.BottomSheetCallback {
|
||||
override val onDismiss: () -> Unit = { bottomSheetNavigation::dismiss }
|
||||
override val onBack: () -> Unit = { bottomSheetNavigation::dismiss }
|
||||
}
|
||||
|
||||
init {
|
||||
analyticsEventHandler.send(ReferralEvents.ReferralScreenOpened)
|
||||
if (accountsFeatureToggles.isFeatureEnabled) {
|
||||
|
|
@ -172,7 +179,7 @@ internal class ReferralModel @Inject constructor(
|
|||
modelScope.launch {
|
||||
val lastInfoState = uiState.referralInfoState
|
||||
val portfolioId = when (accountsFeatureToggles.isFeatureEnabled) {
|
||||
true -> PortfolioId(requireNotNull(portfolioSelectorController.selectedAccount.value))
|
||||
true -> PortfolioId(requireNotNull(portfolioSelectorController.selectedAccountSync))
|
||||
false -> PortfolioId(params.userWalletId)
|
||||
}
|
||||
runCatching { referralInteractor.startReferral(portfolioId) }
|
||||
|
|
@ -259,7 +266,7 @@ internal class ReferralModel @Inject constructor(
|
|||
|
||||
private suspend fun selectAccount(referralData: ReferralData) {
|
||||
when (referralData) {
|
||||
is ReferralData.NonParticipantData -> if (portfolioSelectorController.selectedAccount.value == null) {
|
||||
is ReferralData.NonParticipantData -> if (portfolioSelectorController.selectedAccountSync == null) {
|
||||
portfolioSelectorController.selectAccount(
|
||||
accountId = walletAccounts(params.userWalletId).first().mainAccount.account.accountId,
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue