NTP-62883 | added monthly limit breached (#16240)

This commit is contained in:
Kamalesh Garnayak
2025-05-21 15:53:09 +05:30
committed by GitHub
parent aeecb082fa
commit 389550510e
3 changed files with 68 additions and 29 deletions

View File

@@ -39,4 +39,5 @@ object NaviRRColor {
val dividerColor = Color(0xFFEBEBEB)
val shadowColor = Color(0x4DD1D9E6)
val darkGreenBoldText = Color(0xFF17712B)
val orangeText = Color(0xFFCA6100)
}

View File

@@ -96,4 +96,5 @@ enum class RefereeStateV2 {
INELIGIBLE,
REMIND,
REMINDED,
MONTHLY_LIMIT_REACHED,
}

View File

@@ -85,6 +85,7 @@ import com.navi.rr.common.constants.FORGE_REFEREE_TRACKER_SCREEN_V3
import com.navi.rr.common.theme.color.NaviRRColor
import com.navi.rr.common.theme.color.NaviRRColor.expiryText
import com.navi.rr.common.theme.color.NaviRRColor.greenBoldText
import com.navi.rr.common.theme.color.NaviRRColor.orangeText
import com.navi.rr.common.theme.color.NaviRRColor.primaryText
import com.navi.rr.common.theme.color.NaviRRColor.secondaryText
import com.navi.rr.common.theme.color.NaviRRColor.tertiaryText
@@ -176,6 +177,7 @@ fun RefereeTrackerScreenV2(
)
}
}
is RefereeTrackerScreenState.Success -> {
RefereeTrackerScreenBodyV2(
immutablerefereeTrackerList = refereeTrackerList,
@@ -275,6 +277,7 @@ fun RefereeTrackerScreenBodyV2(
hideWhatsAppLoader = refereeTrackerVM::hideWhatsappLoader,
)
}
GENERIC_SHARE -> {
refereeTrackerVM.rrShareApp.genericShare(
context = context,
@@ -284,6 +287,7 @@ fun RefereeTrackerScreenBodyV2(
hideGenericShareLoader = refereeTrackerVM::hideGenericShareLoader,
)
}
CLOSE_SHEET -> {
coroutineScope
.launch { modalBottomSheetState.hide() }
@@ -293,6 +297,7 @@ fun RefereeTrackerScreenBodyV2(
}
}
}
REMIND -> {
val ch = refereeTrackerList.itemSnapshotList
val index: Int =
@@ -316,6 +321,7 @@ fun RefereeTrackerScreenBodyV2(
}
refereeTrackerVM.referenceId = null
}
else ->
DeepLinkManager.getDeepLinkListener()
?.navigateTo(
@@ -417,12 +423,14 @@ fun RefereeTrackerScreenBodyV2(
is LoadState.Loading -> {
item { PaginationLoadingComponent() }
}
is LoadState.Error -> {
item {
PaginationErrorComponent()
naviRRAnalytics.sendEvent(REFEREE_TRACKER_SCROLL_ERROR)
}
}
else -> Unit
}
}
@@ -557,35 +565,55 @@ private fun RefereeItemComponent(
Spacer(modifier = Modifier.height(2.dp))
Row(verticalAlignment = Alignment.CenterVertically) {
refereeDetails.refereeCardInfo?.let { cardInfo ->
Text(
text =
moneyFormat(cardInfo.rewardsEarned.toString()) +
if (cardInfo.rewardType == NAVI_COIN) " coins" else " cash",
style =
TextStyle(
fontSize = 12.sp,
fontFamily = naviFontFamily,
fontWeight = FontWeight.SemiBold,
color =
if (
cardInfo.completedProgramme.isNotNull() &&
cardInfo?.completedProgramme!! > 0
)
greenBoldText
else secondaryText,
),
)
Text(
text = stringResource(R.string.earned_referee_tracker),
style =
TextStyle(
fontSize = 12.sp,
lineHeight = 22.sp,
fontFamily = naviFontFamily,
fontWeight = FontWeight.Normal,
color = tertiaryText,
),
)
when (refereeTrackerStatus?.name) {
RefereeStateV2.MONTHLY_LIMIT_REACHED.name -> {
Text(
text =
statusProgressTextMap?.get(refereeTrackerStatus?.name)
?: refereeTrackerStatus.toString(),
style =
TextStyle(
fontSize = 12.sp,
fontFamily = naviFontFamily,
fontWeight = FontWeight.Medium,
color = orangeText,
),
)
}
else -> {
Text(
text =
moneyFormat(cardInfo.rewardsEarned.toString()) +
if (cardInfo.rewardType == NAVI_COIN) " coins"
else " cash",
style =
TextStyle(
fontSize = 12.sp,
fontFamily = naviFontFamily,
fontWeight = FontWeight.SemiBold,
color =
if (
cardInfo.completedProgramme.isNotNull() &&
cardInfo?.completedProgramme!! > 0
)
greenBoldText
else secondaryText,
),
)
Text(
text = stringResource(R.string.earned_referee_tracker),
style =
TextStyle(
fontSize = 12.sp,
lineHeight = 22.sp,
fontFamily = naviFontFamily,
fontWeight = FontWeight.Normal,
color = tertiaryText,
),
)
}
}
}
}
}
@@ -598,18 +626,23 @@ private fun RefereeItemComponent(
RefereeStateV2.BLOCKED -> {
BlockedStateComponent(statusTitle = statusText)
}
RefereeStateV2.IN_PROGRESS -> {
InProgressStateComponent(statusTitle = statusText)
}
RefereeStateV2.EXPIRED -> {
ExpiredStateComponent(statusTitle = statusText)
}
RefereeStateV2.COMPLETED -> {
CompletedStateComponent(statusTitle = statusText)
}
RefereeStateV2.INELIGIBLE -> {
InEligibleStateComponent(statusTitle = statusText)
}
RefereeStateV2.REMIND -> {
RemindStateComponentV2(
statusTitle = statusText,
@@ -622,9 +655,11 @@ private fun RefereeItemComponent(
},
)
}
RefereeStateV2.REMINDED -> {
RemindedStateComponent(statusTitle = statusText)
}
else -> Unit
}
}
@@ -654,11 +689,13 @@ private fun RefereeTrackerBottomSheetRenderer(
refereeDetails.refereeCardInfo?.reminded == true -> {
RefereeStateV2.REMINDED
}
refereeDetails?.refereeCardInfo?.referralProgressStatus ==
RefereeStateV2.INVITED &&
refereeDetails.refereeCardInfo?.reminded == false -> {
RefereeStateV2.REMIND
}
else -> {
refereeDetails?.refereeCardInfo?.referralProgressStatus
}