Updated on 2026-08-14

This commit is contained in:
Tangem 2025-05-15 11:39:28 +03:00
parent a72837204d
commit 96b4a46462
8 changed files with 30 additions and 24 deletions

View file

@ -5,6 +5,7 @@ import com.tangem.blockchain.common.Token
import com.tangem.blockchainsdk.utils.ExcludedBlockchains
import com.tangem.blockchainsdk.utils.fromNetworkId
import com.tangem.data.common.currency.CryptoCurrencyFactory
import com.tangem.datasource.api.common.response.getOrThrow
import com.tangem.datasource.api.tangemTech.TangemTechApi
import com.tangem.datasource.api.tangemTech.models.StartReferralBody
import com.tangem.datasource.local.userwallet.UserWalletsStore
@ -38,7 +39,7 @@ internal class ReferralRepositoryImpl @Inject constructor(
val referralData = referralConverter.convert(
referralApi.getReferralStatus(
walletId = walletId,
),
).getOrThrow(),
)
referralStatus[walletId] = referralData
@ -66,7 +67,7 @@ internal class ReferralRepositoryImpl @Inject constructor(
tokenId = tokenId,
address = address,
),
),
).getOrThrow(),
)
referralStatus[walletId] = referralData
referralData

View file

@ -4,11 +4,12 @@ import com.tangem.core.analytics.models.AnalyticsEvent
sealed class ReferralEvents(event: String) : AnalyticsEvent(REFERRAL_PROGRAM_CATEGORY, event) {
object ReferralScreenOpened : ReferralEvents(event = "Referral Screen Opened")
object ClickParticipate : ReferralEvents(event = "Button - Participate")
object ClickCopy : ReferralEvents(event = "Button - Copy")
object ClickShare : ReferralEvents(event = "Button - Share")
object ClickTaC : ReferralEvents(event = "Link - TaC")
data object ReferralScreenOpened : ReferralEvents(event = "Referral Screen Opened")
data object ClickParticipate : ReferralEvents(event = "Button - Participate")
data object ClickCopy : ReferralEvents(event = "Button - Copy")
data object ClickShare : ReferralEvents(event = "Button - Share")
data object ClickTaC : ReferralEvents(event = "Link - TaC")
data object ParticipateSuccessful : ReferralEvents(event = "Participate Successful")
}
private const val REFERRAL_PROGRAM_CATEGORY = "Referral Program"

View file

@ -91,7 +91,10 @@ internal class ReferralModel @Inject constructor(
uiState = uiState.copy(referralInfoState = ReferralInfoState.Loading)
modelScope.launch {
runCatching { referralInteractor.startReferral(params.userWalletId) }
.onSuccess(::showContent)
.onSuccess {
analyticsEventHandler.send(ReferralEvents.ParticipateSuccessful)
showContent(it)
}
.onFailure { throwable ->
if (throwable is ReferralError.UserCancelledException) {
lastReferralData?.let { referralData ->

View file

@ -39,7 +39,7 @@ internal data class ReferralStateHolder(
val onParticipateClicked: () -> Unit,
) : ReferralInfoState, ReferralInfoContentState
object Loading : ReferralInfoState
data object Loading : ReferralInfoState
}
data class ErrorSnackbar(