antd
Version:
An enterprise-class UI design language and React-based implementation
75 lines (66 loc) • 2.44 kB
JavaScript
import _extends from 'babel-runtime/helpers/extends';
import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
import _createClass from 'babel-runtime/helpers/createClass';
import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
import _inherits from 'babel-runtime/helpers/inherits';
import * as React from 'react';
import Tooltip from '../tooltip';
import warning from '../_util/warning';
var Popover = function (_React$Component) {
_inherits(Popover, _React$Component);
function Popover() {
_classCallCheck(this, Popover);
var _this = _possibleConstructorReturn(this, (Popover.__proto__ || Object.getPrototypeOf(Popover)).apply(this, arguments));
_this.saveTooltip = function (node) {
_this.tooltip = node;
};
return _this;
}
_createClass(Popover, [{
key: 'getPopupDomNode',
value: function getPopupDomNode() {
return this.tooltip.getPopupDomNode();
}
}, {
key: 'getOverlay',
value: function getOverlay() {
var _props = this.props,
title = _props.title,
prefixCls = _props.prefixCls,
content = _props.content;
warning(!('overlay' in this.props), 'Popover[overlay] is removed, please use Popover[content] instead, ' + 'see: https://u.ant.design/popover-content');
return React.createElement(
'div',
null,
title && React.createElement(
'div',
{ className: prefixCls + '-title' },
title
),
React.createElement(
'div',
{ className: prefixCls + '-inner-content' },
content
)
);
}
}, {
key: 'render',
value: function render() {
var props = _extends({}, this.props);
delete props.title;
return React.createElement(Tooltip, _extends({}, props, { ref: this.saveTooltip, overlay: this.getOverlay() }));
}
}]);
return Popover;
}(React.Component);
export default Popover;
Popover.defaultProps = {
prefixCls: 'ant-popover',
placement: 'top',
transitionName: 'zoom-big',
trigger: 'hover',
mouseEnterDelay: 0.1,
mouseLeaveDelay: 0.1,
overlayStyle: {}
};