Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@doodle/tracking / dist / esm / src / core / getTrackingDataAttrs.js
Size: Mime:
import { isUndefined } from '../helpers/utils.js';

/**
 * Returns an object with tracking-related data attributes to be spread over a JSX element
 *
 * @param {TrackingIntent} trackingIntent An object that holds the values that should be tracked
 * @return {Object} An object with data attributes as keys
 */

const getTrackingDataAttrs = ({
  track,
  identify,
  page,
  options: {
    services,
    setOnce,
    autoTracking
  } = {}
}) => {
  const trackingOptions = { ...(!isUndefined(services) && {
      services
    }),
    ...(!isUndefined(setOnce) && {
      setOnce
    }),
    ...(!isUndefined(autoTracking) && {
      autoTracking
    })
  };
  return { ...(trackingOptions && {
      'data-tracking-options': JSON.stringify(trackingOptions)
    }),
    ...(track && {
      'data-track': JSON.stringify(track)
    }),
    ...(identify && {
      'data-identify': JSON.stringify(identify)
    }),
    ...(page && {
      'data-page': JSON.stringify(page)
    })
  };
};

export { getTrackingDataAttrs };
//# sourceMappingURL=getTrackingDataAttrs.js.map