UNPKG

@randy.tarampi/jsx

Version:

Some common JSX components for www.randytarampi.ca

84 lines (67 loc) 3.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.CampaignLink = void 0; var _js = require("@randy.tarampi/js"); var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireDefault(require("react")); var _contexts = require("../../contexts"); var _internal = require("./internal"); var _link = require("./link"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } 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; } var CampaignLink = function CampaignLink(_ref) { var useBranding = _ref.useBranding, href = _ref.href, source = _ref.source, medium = _ref.medium, name = _ref.name, term = _ref.term, content = _ref.content, props = _objectWithoutProperties(_ref, ["useBranding", "href", "source", "medium", "name", "term", "content"]); return /*#__PURE__*/_react["default"].createElement(_contexts.CampaignContext.Consumer, null, function (campaignContext) { var _ref2 = campaignContext || {}, contextSource = _ref2.source, contextMedium = _ref2.medium, contextName = _ref2.name, contextTerm = _ref2.term, contextContent = _ref2.content; var LinkComponent = _link.Link; var actualHref = (0, _js.augmentUrlWithTrackingParams)(href, { source: source || contextSource, medium: medium || contextMedium, name: name || contextName, term: term || contextTerm || props.text, content: content || contextContent }); if (typeof window !== "undefined" && href && href.startsWith(window.location.origin)) { LinkComponent = _internal.InternalLink; actualHref = href.replace(window.location.origin, ""); } return /*#__PURE__*/_react["default"].createElement(LinkComponent, _extends({}, props, { className: ["link--campaign", useBranding ? "" : "link--no-branding", props.className].join(" ").trim(), href: actualHref, text: props.text || href })); }); }; exports.CampaignLink = CampaignLink; CampaignLink.propTypes = { useBranding: _propTypes["default"].bool, className: _propTypes["default"].string, href: _propTypes["default"].string, text: _propTypes["default"].string, source: _propTypes["default"].string, medium: _propTypes["default"].string, name: _propTypes["default"].string, term: _propTypes["default"].string, content: _propTypes["default"].string }; CampaignLink.defaultProps = { useBranding: true }; var _default = CampaignLink; exports["default"] = _default;