UNPKG

@shopgate/pwa-tracking

Version:

Tracking library for the Shopgate Connect PWA.

5 lines 3.01 kB
function _slicedToArray(arr,i){return _arrayWithHoles(arr)||_iterableToArrayLimit(arr,i)||_nonIterableRest();}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance");}function _iterableToArrayLimit(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"]!=null)_i["return"]();}finally{if(_d)throw _e;}}return _arr;}function _arrayWithHoles(arr){if(Array.isArray(arr))return arr;}import core from'@shopgate/tracking-core/core/Core';import{routeDidLeave$}from'@shopgate/engage/core/streams';import{scanActivated$,scanFail$,scanSuccess$}from"../streams/scanner";import{buildScannerUtmUrl,createScannerEventData,track}from"../helpers";/** * Scanner tracking subscriptions. * @param {Function} subscribe The subscribe function. */export default function scanner(subscribe){var events=core.getScannerEvents();subscribe(scanActivated$,function(_ref){var action=_ref.action,getState=_ref.getState;var format=action.format;track('qrScanner',createScannerEventData({event:events.SCAN_ACTIVATED,userInteraction:false,format:format}),getState());});subscribe(scanSuccess$,function(_ref2){var action=_ref2.action,getState=_ref2.getState;var format=action.format,payload=action.payload;track('qrScanner',createScannerEventData({event:events.SCAN_SUCCESS,format:format,payload:payload}),getState());});subscribe(scanFail$,function(_ref3){var action=_ref3.action,getState=_ref3.getState;var format=action.format,payload=action.payload;track('qrScanner',createScannerEventData({event:events.SCAN_FAIL,format:format,payload:payload}),getState());});var afterScan$=scanActivated$.withLatestFrom(routeDidLeave$).switchMap(function(){return scanSuccess$.first();},function(_ref4,successAction){var _ref5=_slicedToArray(_ref4,2),activatedAction=_ref5[0],refererAction=_ref5[1];return{activatedAction:activatedAction,refererAction:refererAction,successAction:successAction,getState:activatedAction.getState};});subscribe(afterScan$,function(_ref6){var activatedAction=_ref6.activatedAction,refererAction=_ref6.refererAction,successAction=_ref6.successAction,getState=_ref6.getState;var _activatedAction$acti=activatedAction.action,_activatedAction$acti2=_activatedAction$acti===void 0?{}:_activatedAction$acti,scannerRoute=_activatedAction$acti2.route;var _refererAction$action=refererAction.action.route,_refererAction$action2=_refererAction$action===void 0?{}:_refererAction$action,referer=_refererAction$action2.location;var _successAction$action=successAction.action,format=_successAction$action.format,payload=_successAction$action.payload;// eslint-disable-next-line extra-rules/no-single-line-objects var urlWithUtm=buildScannerUtmUrl({scannerRoute:scannerRoute,format:format,payload:payload,referer:referer});track('setCampaignWithUrl',{url:urlWithUtm,type:'scanner'},getState());});}