@uehreka/gatsby-plugin-anchor-links
Version:
Gatsby plugin for using anchor links with a Gatsby Link component (this one supports gatsby-plugin-transition-link).
47 lines (37 loc) • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.AnchorLink = AnchorLink;
var _react = _interopRequireDefault(require("react"));
var _gatsby = require("gatsby");
var _utils = require("../utils");
var _types = require("../types");
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 AnchorLink(_ref) {
var to = _ref.to,
entry = _ref.entry,
exit = _ref.exit,
title = _ref.title,
children = _ref.children,
className = _ref.className,
_ref$stripHash = _ref.stripHash,
stripHash = _ref$stripHash === void 0 ? false : _ref$stripHash;
var linkProps = {
to: stripHash ? (0, _utils.stripHashedLocation)(to) : to,
onClick: function onClick(e) {
return stripHash ? (0, _utils.handleStrippedLinkClick)(to, e) : (0, _utils.handleLinkClick)(to, e);
}
};
/**
* Optional props
*/
if (title) linkProps.title = title;
if (className) linkProps.className = className;
return /*#__PURE__*/_react["default"].createElement(_gatsby.Link, _extends({}, linkProps, {
entry: entry,
exit: exit
}), Boolean(children) ? children : title);
}
AnchorLink.propTypes = _types.anchorLinkTypes;