@shopgate/pwa-tracking
Version:
Tracking library for the Shopgate Connect PWA.
8 lines • 1.22 kB
JavaScript
import{createSelector}from'reselect';import{createPageviewData}from"../helpers";import getPage,{makeGetRoutePageConfig}from"./page";import getCart from"./cart";import getSearch from"./search";import getFavorites from"./favorites";import{makeGetRouteCategory}from"./category";import{makeGetRouteProduct}from"./product";/**
* Creates a selector that retrieves tracking data for the current route.
* @returns {Function}
*/export var makeGetTrackingData=function makeGetTrackingData(){var getRouteCategory=makeGetRouteCategory();var getRouteProduct=makeGetRouteProduct();var getRoutePageConfig=makeGetRoutePageConfig();/**
* Selects the combined tracking information.
* @param {Object} state The current state.
* @returns {Object} The tracking data.
*/return createSelector(getPage,getCart,getFavorites,getSearch,getRouteCategory,getRouteProduct,getRoutePageConfig,function(state){var props=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};return props.pattern;},function(page,cart,favorites,search,category,product,pageConfig,pattern){return createPageviewData({page:page,cart:cart,favorites:favorites,search:search,category:category,product:product,pageConfig:pageConfig,pattern:pattern});});};