@randy.tarampi/jsx
Version:
Some common JSX components for www.randytarampi.ca
84 lines (67 loc) • 3.68 kB
JavaScript
;
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;