UNPKG

@shopify/react-tracking-pixel

Version:
43 lines (35 loc) 1.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _reactHtml = require("@shopify/react-html"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const IFRAME_STYLES = { display: 'none' }; function TrackingPixel({ url, preconnectHosts = [] }) { const preconnectHostsMarkup = preconnectHosts.map(preconnectHost => /*#__PURE__*/_react.default.createElement(_reactHtml.Preconnect, { key: preconnectHost, source: preconnectHost })); return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, preconnectHostsMarkup, /*#__PURE__*/_react.default.createElement("iframe", { src: url, sandbox: "allow-scripts", title: url, scrolling: "no", frameBorder: 0, height: 1, width: 1, style: IFRAME_STYLES })); } var _default = /*#__PURE__*/_react.default.memo(TrackingPixel, (oldProps, newProps) => { const samePreconnectHosts = oldProps.preconnectHosts == null && newProps.preconnectHosts == null || (newProps.preconnectHosts || []).join() === (oldProps.preconnectHosts || []).join(); return oldProps.url === newProps.url && samePreconnectHosts; }); exports.default = _default;