UNPKG

react-ga-donottrack

Version:

Wrapper for react-ga that only adds Google Analytics if DoNotTrack is not enabled

76 lines (75 loc) 3.07 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; }; Object.defineProperty(exports, "__esModule", { value: true }); var React = __importStar(require("react")); var ReactGA = __importStar(require("react-ga")); var doNotTrack = ( // Do not add Google Analytics when building the static site... typeof window === 'undefined' // ...or when DoNotTrack is enabled: || (typeof window.navigator !== 'undefined' && window.navigator.doNotTrack === '1')); exports.initialize = wrapFunction(ReactGA.initialize); exports.set = wrapFunction(ReactGA.set); exports.pageview = wrapFunction(ReactGA.pageview); exports.modalview = wrapFunction(ReactGA.modalview); exports.event = wrapFunction(ReactGA.event); exports.timing = wrapFunction(ReactGA.timing); exports.ga = wrapFunction(ReactGA.ga); exports.outboundLink = wrapFunction(ReactGA.outboundLink); exports.exception = wrapFunction(ReactGA.exception); var OutboundLink = /** @class */ (function (_super) { __extends(OutboundLink, _super); function OutboundLink() { return _super !== null && _super.apply(this, arguments) || this; } OutboundLink.prototype.render = function () { if (doNotTrack) { // Make sure <OutboundLink>'s custom props do not get passed on to the <a>: var aProps = __assign({}, this.props); delete aProps.to; delete aProps.eventLabel; delete aProps.trackerNames; return (React.createElement("a", __assign({ href: this.props.to }, aProps))); } return (React.createElement(ReactGA.OutboundLink, __assign({}, this.props))); }; return OutboundLink; }(ReactGA.OutboundLink)); exports.OutboundLink = OutboundLink; function wrapFunction(functionToWrap) { if (doNotTrack) { return (function () { return undefined; }); } return functionToWrap; }