Updated on 2026-08-14
This commit is contained in:
parent
a72837204d
commit
96b4a46462
8 changed files with 30 additions and 24 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
@ -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 ->
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ internal data class ReferralStateHolder(
|
|||
val onParticipateClicked: () -> Unit,
|
||||
) : ReferralInfoState, ReferralInfoContentState
|
||||
|
||||
object Loading : ReferralInfoState
|
||||
data object Loading : ReferralInfoState
|
||||
}
|
||||
|
||||
data class ErrorSnackbar(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue