UNPKG

@shopgate/engage

Version:
7 lines 1.81 kB
import{createSelector}from'reselect';import{appSupportsPushOptIn}from'@shopgate/engage/core/helpers';import{appConfig}from'@shopgate/engage';import{getPushOptInModalTriggerType}from"./optInModal";/** * Selects the push opt in information. * @param {Object} state The current state. * @returns {Object} The push opt in information. */export var getPushOptInTriggerState=function getPushOptInTriggerState(state){var _state$pushOptIn;return(state===null||state===void 0?void 0:(_state$pushOptIn=state.pushOptIn)===null||_state$pushOptIn===void 0?void 0:_state$pushOptIn.optInTrigger)||{};};/** * Creates a meta data object for push opt in tracking events */export var getPushOptInTrackingMeta=createSelector(getPushOptInModalTriggerType,getPushOptInTriggerState,function(triggerType,triggerState){var _appConfig$pushOptIn=appConfig.pushOptIn,_appConfig$pushOptIn2=_appConfig$pushOptIn===void 0?{}:_appConfig$pushOptIn,_appConfig$pushOptIn3=_appConfig$pushOptIn2.appStarts,_appConfig$pushOptIn4=_appConfig$pushOptIn3===void 0?{}:_appConfig$pushOptIn3,_appConfig$pushOptIn5=_appConfig$pushOptIn4.value,appStartsVal=_appConfig$pushOptIn5===void 0?0:_appConfig$pushOptIn5,_appConfig$pushOptIn6=_appConfig$pushOptIn2.ordersPlaced,_appConfig$pushOptIn7=_appConfig$pushOptIn6===void 0?{}:_appConfig$pushOptIn6,_appConfig$pushOptIn8=_appConfig$pushOptIn7.value,ordersPlacedVal=_appConfig$pushOptIn8===void 0?0:_appConfig$pushOptIn8;var usesSoftPushOptIn=appSupportsPushOptIn()&&(appStartsVal>0||ordersPlacedVal>0);if(triggerType==='ordersPlaced'){return{permission:'push',context:'checkoutSuccess',contextCounter:triggerState.ordersPlacedCountAbs,usesSoftPushOptIn:usesSoftPushOptIn};}return{permission:'push',context:'appStart',contextCounter:triggerState.appStartCountAbs,usesSoftPushOptIn:usesSoftPushOptIn};});