UNPKG

@storybook/addon-links

Version:

Link stories together to build demos and prototypes with your UI components

53 lines (44 loc) 1.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } // NOTE: this is a copy of `lib/components/src/navigation/RoutedLink.tsx`. // It's duplicated here because that copy has an explicit dependency on // React 16.3+, which breaks older versions of React running in the preview. // The proper DRY solution is to create a new package that doesn't depend // on a specific react version. However, that's a heavy-handed solution for // one trivial file. var LEFT_BUTTON = 0; // Cmd/Ctrl/Shift/Alt + Click should trigger default browser behaviour. Same applies to non-left clicks var isPlainLeftClick = function isPlainLeftClick(e) { return e.button === LEFT_BUTTON && !e.altKey && !e.ctrlKey && !e.metaKey && !e.shiftKey; }; var RoutedLink = function RoutedLink(_ref) { var _ref$href = _ref.href, href = _ref$href === void 0 ? '#' : _ref$href, children = _ref.children, onClick = _ref.onClick, className = _ref.className, style = _ref.style; var handleClick = function handleClick(e) { if (isPlainLeftClick(e)) { e.preventDefault(); onClick(e); } }; var props = onClick ? { href: href, className: className, style: style, onClick: handleClick } : { href: href, className: className, style: style }; return /*#__PURE__*/_react.default.createElement("a", props, children); }; var _default = RoutedLink; exports.default = _default;