説明なし

index.jsx 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import './style.scss'
  2. import React from 'react'
  3. import DropDown from 'components/common/DropDown'
  4. import { ContentUtils } from 'braft-utils'
  5. const insertEmoji = (event, props) => {
  6. let emoji = event.currentTarget.dataset.emoji
  7. const hookReturns = props.hooks('insert-emoji', emoji)(emoji)
  8. if (hookReturns === false) {
  9. return false
  10. }
  11. if (typeof hookReturns === 'string') {
  12. emoji = hookReturns
  13. }
  14. props.editor.setValue(ContentUtils.insertText(props.editorState, emoji))
  15. props.editor.requestFocus()
  16. }
  17. export default (props) => {
  18. return (
  19. <DropDown
  20. caption={props.defaultCaption}
  21. showArrow={false}
  22. containerNode={props.containerNode}
  23. title={props.language.controls.emoji}
  24. className={'control-item dropdown bf-emoji-dropdown'}
  25. >
  26. <div className='bf-emojis-wrap'>
  27. <ul className='bf-emojis'>
  28. {props.emojis.map((item, index) => {
  29. return (
  30. <li
  31. key={index}
  32. data-emoji={item}
  33. onClick={(event) => insertEmoji(event, props)}
  34. >{item}</li>
  35. )
  36. })}
  37. </ul>
  38. </div>
  39. </DropDown>
  40. )
  41. }