@forchange/aui
Version:
ai-boss 业务 ui 组件库
66 lines (57 loc) • 2.17 kB
JavaScript
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 _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
import * as React from 'react';
import classnames from 'classnames';
import Popover from 'antd/lib/popover';
import 'antd/lib/popover/style/css';
import { getPrefixCls } from '../style/config';
import code from './code';
import "./style/index.css";
class EmojiPanel extends React.Component {
constructor(props) {
super(props);
this.state = {
displayName: 'emoji-panel'
};
}
clickHandle(code) {
if (this.props.onSelect) {
this.props.onSelect(String.fromCodePoint(code));
}
}
get content() {
const prefixCls = getPrefixCls(this.state.displayName);
return React.createElement("ul", {
className: `${prefixCls}-emoji-list`
}, code.map((item, index) => {
const num = parseInt(item, 16);
return React.createElement("li", {
className: `${prefixCls}-emoji-item`,
onClick: () => {
this.clickHandle(num);
},
key: index
}, String.fromCodePoint(num));
}));
}
render() {
const prefixCls = getPrefixCls(this.state.displayName);
const {
className,
overlayClassName,
trigger = 'click',
...extraProps
} = this.props;
const emojiPanelCls = classnames(prefixCls, className);
const popOverCls = classnames(`${prefixCls}-popover`, overlayClassName);
return React.createElement("div", {
className: emojiPanelCls
}, React.createElement(Popover, _extends({
trigger: trigger,
content: this.content,
overlayClassName: popOverCls
}, extraProps), this.props.children));
}
}
_defineProperty(EmojiPanel, "defaultProps", {});
export default EmojiPanel;