UNPKG

backpack-ui

Version:
78 lines (57 loc) 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = require("babel-runtime/helpers/extends"); var _extends3 = _interopRequireDefault(_extends2); var _objectWithoutProperties2 = require("babel-runtime/helpers/objectWithoutProperties"); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _react = require("react"); var _react2 = _interopRequireDefault(_react); var _propTypes = require("prop-types"); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactRouter = require("react-router"); var _createQAHook = require("../../utils/createQAHook"); var _createQAHook2 = _interopRequireDefault(_createQAHook); var _validReactAttributes = require("../../utils/validReactAttributes"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var isExternal = function isExternal(url) { return (/^(http|https):\/\//.test(url || "") ); }; var Link = function Link(_ref) { var to = _ref.to, onClick = _ref.onClick, children = _ref.children, qaHook = _ref.qaHook, rest = (0, _objectWithoutProperties3.default)(_ref, ["to", "onClick", "children", "qaHook"]); var sanitizedProps = (0, _validReactAttributes.validReactAttributes)(rest); return isExternal(to) || !to && onClick ? _react2.default.createElement( "a", (0, _extends3.default)({ href: to, "data-testid": qaHook ? (0, _createQAHook2.default)("" + qaHook, "external-link", "link") : null, onClick: onClick }, sanitizedProps), children ) : _react2.default.createElement( _reactRouter.Link, (0, _extends3.default)({ to: to, onClick: onClick }, sanitizedProps), children ); }; Link.propTypes = { to: _propTypes2.default.string, onClick: _propTypes2.default.func, children: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node, _propTypes2.default.element]), qaHook: _propTypes2.default.string, className: _propTypes2.default.string }; Link.defaultProps = { qaHook: null, className: "" }; exports.default = Link;