NTP-12345 | Handle null check in nudge CollapsedState (#13983)

This commit is contained in:
Sanjay P
2024-12-05 17:42:30 +05:30
committed by GitHub
parent 5694d12ee1
commit f0e132eabd
2 changed files with 40 additions and 36 deletions

View File

@@ -25,6 +25,7 @@ data class NudgeData(
enum class NudgeStatus {
SUCCESS,
IN_PROGRESS,
DEFAULT,
DELETED
}

View File

@@ -49,45 +49,48 @@ fun NudgeContainerCollapsedState(
onNudgeEvent: (event: NudgeEvent) -> Unit,
onNudgeEffect: (effect: NudgeEffect) -> Unit
) {
Box(Modifier.fillMaxWidth()) {
AnimatedContent(
targetState = filterDeletedNudges(nudgeState).firstOrNull(),
contentKey = { it?.nudgeId },
transitionSpec = {
getCollapsedNudgeTransitionSpec(
nudgeState,
this.initialState?.nudgeId.orEmpty()
) using
SizeTransform { old, new ->
keyframes {
IntSize(new.width, old.height) at
COLLAPSED_NUDGE_ELEMENT_TRANSITION_DURATION
durationMillis = COLLAPSED_NUDGE_ELEMENT_TRANSITION_DURATION
val filteredNudge = filterDeletedNudges(nudgeState).firstOrNull()
if (filteredNudge != null) {
Box(Modifier.fillMaxWidth()) {
AnimatedContent(
targetState = filteredNudge,
contentKey = { it.nudgeId },
transitionSpec = {
getCollapsedNudgeTransitionSpec(
nudgeState,
this.initialState.nudgeId.orEmpty()
) using
SizeTransform { old, new ->
keyframes {
IntSize(new.width, old.height) at
COLLAPSED_NUDGE_ELEMENT_TRANSITION_DURATION
durationMillis = COLLAPSED_NUDGE_ELEMENT_TRANSITION_DURATION
}
}
}
},
label = REPLACE_NUDGE_IN_COLLAPSED_STATE,
) {
it?.let {
NudgeUI(
modifier = Modifier.padding(top = 13.dp),
nudgeUitronRenderer = nudgeUitronRenderer,
nudgeData = it,
onNudgeEvent = onNudgeEvent,
enableFrontLayerElevation = true,
onNudgeEffect = onNudgeEffect
)
},
label = REPLACE_NUDGE_IN_COLLAPSED_STATE,
) {
it.let {
NudgeUI(
modifier = Modifier.padding(top = 13.dp),
nudgeUitronRenderer = nudgeUitronRenderer,
nudgeData = it,
onNudgeEvent = onNudgeEvent,
enableFrontLayerElevation = true,
onNudgeEffect = onNudgeEffect
)
}
}
NudgeMiddlePill(
nudgeCount = filterDeletedNudges(nudgeState).size.orZero(),
onClick = {
onNudgeEvent(NudgeEvent.UpdateNudgeExpandedState(true))
onNudgeEffect(
NudgeEffect.TriggerClickStreamEvent(eventName = "nudge_middle_pill_clicked")
)
}
)
}
NudgeMiddlePill(
nudgeCount = filterDeletedNudges(nudgeState).size.orZero(),
onClick = {
onNudgeEvent(NudgeEvent.UpdateNudgeExpandedState(true))
onNudgeEffect(
NudgeEffect.TriggerClickStreamEvent(eventName = "nudge_middle_pill_clicked")
)
}
)
}
}