Updated on 2026-08-14

This commit is contained in:
Tangem 2026-01-20 15:59:31 +04:00
parent 723c6159d5
commit ffa99d5593
4 changed files with 10 additions and 2 deletions

View file

@ -44,6 +44,7 @@ internal class DefaultTangemPayEligibilityManager @Inject constructor(
override suspend fun getTangemPayAvailability(): Boolean {
return onboardingRepository.checkCustomerEligibility()
.also { isEligible -> if (!isEligible) reset() }
}
private suspend fun getUserWalletsData(): List<UserWalletData> {
@ -120,7 +121,7 @@ internal class DefaultTangemPayEligibilityManager @Inject constructor(
}
}
private fun reset() {
override fun reset() {
cachedEligibleWallets = null
eligibleWalletsDeferred?.cancel()
eligibleWalletsDeferred = null

View file

@ -6,4 +6,5 @@ interface TangemPayEligibilityManager {
suspend fun getEligibleWallets(shouldExcludePaeraCustomers: Boolean): List<UserWallet>
suspend fun getTangemPayAvailability(): Boolean
fun reset()
}

View file

@ -6,6 +6,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.domain.pay.KycStartInfo
import com.tangem.domain.pay.TangemPayEligibilityManager
import com.tangem.domain.pay.repository.KycRepository
import com.tangem.domain.tangempay.TangemPayAnalyticsEvents
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
@ -22,6 +23,7 @@ class DefaultKycModel @Inject constructor(
analytics: AnalyticsEventHandler,
override val dispatchers: CoroutineDispatcherProvider,
private val kycRepository: KycRepository,
private val tangemPayEligibilityManager: TangemPayEligibilityManager,
) : Model() {
private val params: KycComponent.Params = paramsContainer.require()
@ -33,7 +35,10 @@ class DefaultKycModel @Inject constructor(
analytics.send(TangemPayAnalyticsEvents.KycFlowOpened())
modelScope.launch {
try {
kycRepository.getKycStartInfo(params.userWalletId).getOrNull()?.let { _uiState.emit(it) }
kycRepository.getKycStartInfo(params.userWalletId).getOrNull()?.let { state ->
_uiState.emit(state)
tangemPayEligibilityManager.reset()
}
} catch (e: Exception) {
Timber.e(e)
}

View file

@ -198,6 +198,7 @@ internal class TangemPayClickIntentsImplementor @Inject constructor(
if (isEligible) {
router.openTangemPayOnboarding(mode = AppRoute.TangemPayOnboarding.Mode.FromBannerOnMain(userWalletId))
} else {
stateHolder.update(transformer = TangemPayHideOnboardingStateTransformer(userWalletId))
tangemPayMainScreenCustomerInfoUseCase.fetch(userWalletId)
}
}