UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

59 lines (58 loc) 2.68 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"]; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"]; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _classnames = _interopRequireDefault(require("classnames")); var React = _interopRequireWildcard(require("react")); var _configProvider = require("../config-provider"); var _context = _interopRequireDefault(require("./context")); var AnchorLink = function AnchorLink(props) { var _props$href = props.href, href = _props$href === void 0 ? '#' : _props$href, title = props.title, customizePrefixCls = props.prefixCls, children = props.children, className = props.className, target = props.target; var context = React.useContext(_context["default"]); var _ref = context || {}, registerLink = _ref.registerLink, unregisterLink = _ref.unregisterLink, scrollTo = _ref.scrollTo, onClick = _ref.onClick, activeLink = _ref.activeLink; React.useEffect(function () { registerLink === null || registerLink === void 0 ? void 0 : registerLink(href); return function () { unregisterLink === null || unregisterLink === void 0 ? void 0 : unregisterLink(href); }; }, [href, registerLink, unregisterLink]); var handleClick = function handleClick(e) { onClick === null || onClick === void 0 ? void 0 : onClick(e, { title: title, href: href }); scrollTo === null || scrollTo === void 0 ? void 0 : scrollTo(href); }; return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, function (_ref2) { var getPrefixCls = _ref2.getPrefixCls; var prefixCls = getPrefixCls('anchor', customizePrefixCls); var active = activeLink === href; var wrapperClassName = (0, _classnames["default"])("".concat(prefixCls, "-link"), className, (0, _defineProperty2["default"])({}, "".concat(prefixCls, "-link-active"), active)); var titleClassName = (0, _classnames["default"])("".concat(prefixCls, "-link-title"), (0, _defineProperty2["default"])({}, "".concat(prefixCls, "-link-title-active"), active)); return /*#__PURE__*/React.createElement("div", { className: wrapperClassName }, /*#__PURE__*/React.createElement("a", { className: titleClassName, href: href, title: typeof title === 'string' ? title : '', target: target, onClick: handleClick }, title), children); }); }; var _default = exports["default"] = AnchorLink;