NTP-20431 | Added Api action handling in bottom sheet (#14737)
This commit is contained in:
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,7 +92,13 @@ fun HomeContentFrame(
|
||||
|
||||
HomeScreenBottomSheet(
|
||||
viewModel = sharedVM,
|
||||
handleAction = { handleBottomSheetAction(action = it, activity = activity) },
|
||||
handleAction = {
|
||||
handleBottomSheetAction(
|
||||
action = it,
|
||||
activity = activity,
|
||||
screenOverlayVM = screenOverlayVM,
|
||||
)
|
||||
},
|
||||
)
|
||||
|
||||
NaviModalNavigationDrawer(
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user