UNPKG

@shopgate/pwa-tracking

Version:

Tracking library for the Shopgate Connect PWA.

5 lines 1.97 kB
var _excluded=["isFetching","loginType"];function _extends(){_extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};return _extends.apply(this,arguments);}function _objectWithoutProperties(source,excluded){if(source==null)return{};var target=_objectWithoutPropertiesLoose(source,excluded);var key,i;if(Object.getOwnPropertySymbols){var sourceSymbolKeys=Object.getOwnPropertySymbols(source);for(i=0;i<sourceSymbolKeys.length;i++){key=sourceSymbolKeys[i];if(excluded.indexOf(key)>=0)continue;if(!Object.prototype.propertyIsEnumerable.call(source,key))continue;target[key]=source[key];}}return target;}function _objectWithoutPropertiesLoose(source,excluded){if(source==null)return{};var target={};var sourceKeys=Object.keys(source);var key,i;for(i=0;i<sourceKeys.length;i++){key=sourceKeys[i];if(excluded.indexOf(key)>=0)continue;target[key]=source[key];}return target;}import{createSelector}from'reselect';import{DEFAULT_LOGIN_STRATEGY,isUserLoggedIn,getUserData,makeGetLoginStrategy}from'@shopgate/engage/user';/** * Creates a selector that retrieves user tracking data from the store. * @param {string} name The name of the desired parameter. * @returns {Function} */export function makeGetUser(){var getLoginStrategy=makeGetLoginStrategy();return createSelector(isUserLoggedIn,getUserData,getLoginStrategy,function(isLoggedIn,userData,loginStrategy){if(!isLoggedIn||!userData){return null;}var _ref=userData||{},isFetching=_ref.isFetching,loginType=_ref.loginType,trackedData=_objectWithoutProperties(_ref,_excluded);if(Object.keys(trackedData).length===0){return null;}var type=null;if(loginStrategy!==DEFAULT_LOGIN_STRATEGY){type=loginStrategy;}else if(['userGuest','userAccount'].includes(loginType)){type=loginType==='userGuest'?'guest':'standard';}return _extends({},trackedData,{type:type});});}