NTP-20431 | Added Api action handling in bottom sheet (#14737)

This commit is contained in:
Aparna Vadlamani
2025-01-29 15:10:08 +05:30
committed by GitHub
parent fc5cfe9127
commit 8a0a492f21
3 changed files with 44 additions and 4 deletions

View File

@@ -17,6 +17,8 @@ import com.navi.base.utils.orFalse
import com.navi.common.ui.compose.DrawerState
import com.navi.common.ui.compose.NaviDrawerValue
import com.navi.common.uitron.model.action.CtaAction
import com.navi.common.uitron.model.action.ScreenOverlayActionUpdateAction
import com.navi.common.uitron.model.action.ScreenOverlayStateUpdateAction
import com.navi.uitron.model.action.AnalyticsAction
import com.navi.uitron.model.data.UiTronAction
import com.naviapp.appsettings.model.notificationSettings.NotificationSettingsBottomSheetType
@@ -29,6 +31,11 @@ import com.naviapp.home.reducer.HpEvents
import com.naviapp.home.viewmodel.HomeViewModel
import com.naviapp.home.viewmodel.ProfileVM
import com.naviapp.home.viewmodel.SharedVM
import com.naviapp.screenOverlay.model.OverlayItemActionData
import com.naviapp.screenOverlay.model.OverlayItemStateUpdate
import com.naviapp.screenOverlay.nudge.utils.getOverlayItemAction
import com.naviapp.screenOverlay.nudge.utils.getOverlayItemTransitionState
import com.naviapp.screenOverlay.viewModel.ScreenOverlayVM
@Composable
fun HandleHomeEffects(
@@ -78,7 +85,11 @@ fun ResetProfileScroll(
}
}
fun handleBottomSheetAction(action: UiTronAction?, activity: HomePageActivity) {
fun handleBottomSheetAction(
action: UiTronAction?,
activity: HomePageActivity,
screenOverlayVM: ScreenOverlayVM,
) {
when (action) {
is CtaAction -> {
action.ctaData?.let { ctaData ->
@@ -109,6 +120,29 @@ fun handleBottomSheetAction(action: UiTronAction?, activity: HomePageActivity) {
is AnalyticsAction -> {
NaviTrackEvent.trackEvent(action.eventName.orEmpty(), action.eventProperties)
}
is ScreenOverlayStateUpdateAction -> {
val nudgeTransitionState =
action.states.map {
OverlayItemStateUpdate(
nudgeId = it.nudgeId,
state = getOverlayItemTransitionState(overlayItemState = it.state),
)
}
screenOverlayVM.triggerStateUpdateApiCall(
nudgeTransitionState = nudgeTransitionState,
naeScreenName = activity.screenName,
)
}
is ScreenOverlayActionUpdateAction -> {
val nudgeActions =
action.actions.map {
OverlayItemActionData(
nudgeId = it.nudgeId,
action = getOverlayItemAction(action = it.action),
)
}
screenOverlayVM.triggerActionUpdateApiCall(nudgeActions, activity.screenName)
}
else -> Unit
}
}

View File

@@ -92,7 +92,13 @@ fun HomeContentFrame(
HomeScreenBottomSheet(
viewModel = sharedVM,
handleAction = { handleBottomSheetAction(action = it, activity = activity) },
handleAction = {
handleBottomSheetAction(
action = it,
activity = activity,
screenOverlayVM = screenOverlayVM,
)
},
)
NaviModalNavigationDrawer(

View File

@@ -157,7 +157,7 @@ fun HandleApiAction(
}
}
private fun getOverlayItemTransitionState(overlayItemState: String): OverlayItemTransitionState {
fun getOverlayItemTransitionState(overlayItemState: String): OverlayItemTransitionState {
return when (overlayItemState) {
OverlayItemTransitionState.SUCCESS_ACKNOWLEDGED.name -> {
OverlayItemTransitionState.SUCCESS_ACKNOWLEDGED
@@ -171,7 +171,7 @@ private fun getOverlayItemTransitionState(overlayItemState: String): OverlayItem
}
}
private fun getOverlayItemAction(action: String): OverlayItemAction {
fun getOverlayItemAction(action: String): OverlayItemAction {
return when (action) {
OverlayItemAction.VIEW.name -> {
OverlayItemAction.VIEW