UNPKG

2.65 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
4var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = void 0;
9var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10var _classnames = _interopRequireDefault(require("classnames"));
11var React = _interopRequireWildcard(require("react"));
12var _configProvider = require("../config-provider");
13var _context = _interopRequireDefault(require("./context"));
14var AnchorLink = function AnchorLink(props) {
15 var _props$href = props.href,
16 href = _props$href === void 0 ? '#' : _props$href,
17 title = props.title,
18 customizePrefixCls = props.prefixCls,
19 children = props.children,
20 className = props.className,
21 target = props.target;
22 var context = React.useContext(_context["default"]);
23 var _ref = context || {},
24 registerLink = _ref.registerLink,
25 unregisterLink = _ref.unregisterLink,
26 scrollTo = _ref.scrollTo,
27 onClick = _ref.onClick,
28 activeLink = _ref.activeLink;
29 React.useEffect(function () {
30 registerLink === null || registerLink === void 0 ? void 0 : registerLink(href);
31 return function () {
32 unregisterLink === null || unregisterLink === void 0 ? void 0 : unregisterLink(href);
33 };
34 }, [href, registerLink, unregisterLink]);
35 var handleClick = function handleClick(e) {
36 onClick === null || onClick === void 0 ? void 0 : onClick(e, {
37 title: title,
38 href: href
39 });
40 scrollTo === null || scrollTo === void 0 ? void 0 : scrollTo(href);
41 };
42 return /*#__PURE__*/React.createElement(_configProvider.ConfigConsumer, null, function (_ref2) {
43 var getPrefixCls = _ref2.getPrefixCls;
44 var prefixCls = getPrefixCls('anchor', customizePrefixCls);
45 var active = activeLink === href;
46 var wrapperClassName = (0, _classnames["default"])(prefixCls + "-link", className, (0, _defineProperty2["default"])({}, prefixCls + "-link-active", active));
47 var titleClassName = (0, _classnames["default"])(prefixCls + "-link-title", (0, _defineProperty2["default"])({}, prefixCls + "-link-title-active", active));
48 return /*#__PURE__*/React.createElement("div", {
49 className: wrapperClassName
50 }, /*#__PURE__*/React.createElement("a", {
51 className: titleClassName,
52 href: href,
53 title: typeof title === 'string' ? title : '',
54 target: target,
55 onClick: handleClick
56 }, title), children);
57 });
58};
59var _default = AnchorLink;
60exports["default"] = _default;
\No newline at end of file