UNPKG

@kedao/editor

Version:

Rich Text Editor Based On Draft.js

34 lines 1.49 kB
import React from 'react'; import PropTypes from 'prop-types'; import { v4 as uuidv4 } from 'uuid'; import { ContentUtils } from '@kedao/utils'; import DropDown from '../../common/DropDown'; import './style.scss'; const insertEmoji = (event, props) => { let emoji = event.currentTarget.dataset.emoji; const hookReturns = props.hooks('insert-emoji', emoji)(emoji); if (hookReturns === false) { return false; } if (typeof hookReturns === 'string') { emoji = hookReturns; } props.editor.setValue(ContentUtils.insertText(props.editorState, emoji)); props.editor.requestFocus(); return true; }; const EmojiPicker = (props) => { return (React.createElement(DropDown, { caption: props.defaultCaption, autoHide: true, showArrow: false, getContainerNode: props.getContainerNode, title: props.language.controls.emoji, className: "control-item dropdown bf-emoji-dropdown" }, React.createElement("div", { className: "bf-emojis-wrap" }, React.createElement("ul", { className: "bf-emojis" }, props.emojis.map((item) => { return (React.createElement("li", { key: uuidv4(), "data-emoji": item, onClick: (event) => insertEmoji(event, props), role: "presentation" }, item)); }))))); }; EmojiPicker.propTypes = { defaultCaption: PropTypes.any, getContainerNode: PropTypes.any, emojis: PropTypes.any, language: PropTypes.any }; export default EmojiPicker; //# sourceMappingURL=index.js.map