UNPKG

4.4 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4var _typeof = require("@babel/runtime/helpers/typeof");
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = void 0;
9var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12var _classnames = _interopRequireDefault(require("classnames"));
13var _KeyCode = _interopRequireDefault(require("rc-util/lib/KeyCode"));
14var React = _interopRequireWildcard(require("react"));
15function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17var Notify = /*#__PURE__*/React.forwardRef(function (props, ref) {
18 var prefixCls = props.prefixCls,
19 style = props.style,
20 className = props.className,
21 _props$duration = props.duration,
22 duration = _props$duration === void 0 ? 4.5 : _props$duration,
23 eventKey = props.eventKey,
24 content = props.content,
25 closable = props.closable,
26 _props$closeIcon = props.closeIcon,
27 closeIcon = _props$closeIcon === void 0 ? 'x' : _props$closeIcon,
28 divProps = props.props,
29 onClick = props.onClick,
30 onNoticeClose = props.onNoticeClose,
31 times = props.times;
32 var _React$useState = React.useState(false),
33 _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
34 hovering = _React$useState2[0],
35 setHovering = _React$useState2[1];
36 // ======================== Close =========================
37 var onInternalClose = function onInternalClose() {
38 onNoticeClose(eventKey);
39 };
40 var onCloseKeyDown = function onCloseKeyDown(e) {
41 if (e.key === 'Enter' || e.code === 'Enter' || e.keyCode === _KeyCode.default.ENTER) {
42 onInternalClose();
43 }
44 };
45 // ======================== Effect ========================
46 React.useEffect(function () {
47 if (!hovering && duration > 0) {
48 var timeout = setTimeout(function () {
49 onInternalClose();
50 }, duration * 1000);
51 return function () {
52 clearTimeout(timeout);
53 };
54 }
55 // eslint-disable-next-line react-hooks/exhaustive-deps
56 }, [duration, hovering, times]);
57 // ======================== Render ========================
58 var noticePrefixCls = "".concat(prefixCls, "-notice");
59 return /*#__PURE__*/React.createElement("div", (0, _extends2.default)({}, divProps, {
60 ref: ref,
61 className: (0, _classnames.default)(noticePrefixCls, className, (0, _defineProperty2.default)({}, "".concat(noticePrefixCls, "-closable"), closable)),
62 style: style,
63 onMouseEnter: function onMouseEnter() {
64 setHovering(true);
65 },
66 onMouseLeave: function onMouseLeave() {
67 setHovering(false);
68 },
69 onClick: onClick
70 }), /*#__PURE__*/React.createElement("div", {
71 className: "".concat(noticePrefixCls, "-content")
72 }, content), closable && /*#__PURE__*/React.createElement("a", {
73 tabIndex: 0,
74 className: "".concat(noticePrefixCls, "-close"),
75 onKeyDown: onCloseKeyDown,
76 onClick: function onClick(e) {
77 e.preventDefault();
78 e.stopPropagation();
79 onInternalClose();
80 }
81 }, closeIcon));
82});
83var _default = Notify;
84exports.default = _default;
\No newline at end of file