The code powering m.abunchtell.com https://m.abunchtell.com
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 

53 lignes
1.4 KiB

  1. import Dropdown, { DropdownTrigger, DropdownContent } from 'react-simple-dropdown';
  2. import EmojiPicker from 'emojione-picker';
  3. import PureRenderMixin from 'react-addons-pure-render-mixin';
  4. import { defineMessages, injectIntl } from 'react-intl';
  5. const messages = defineMessages({
  6. emoji: { id: 'emoji_button.label', defaultMessage: 'Emoji' }
  7. });
  8. const settings = {
  9. imageType: 'png',
  10. sprites: false,
  11. imagePathPNG: '/emoji/'
  12. };
  13. const EmojiPickerDropdown = React.createClass({
  14. propTypes: {
  15. intl: React.PropTypes.object.isRequired,
  16. onPickEmoji: React.PropTypes.func.isRequired
  17. },
  18. mixins: [PureRenderMixin],
  19. setRef (c) {
  20. this.dropdown = c;
  21. },
  22. handleChange (data) {
  23. this.dropdown.hide();
  24. this.props.onPickEmoji(data);
  25. },
  26. render () {
  27. const { intl } = this.props;
  28. return (
  29. <Dropdown ref={this.setRef} style={{ marginLeft: '5px' }}>
  30. <DropdownTrigger className='icon-button' title={intl.formatMessage(messages.emoji)} style={{ fontSize: `24px`, width: `24px`, lineHeight: `24px`, display: 'block', marginLeft: '2px' }}>
  31. <i className={`fa fa-smile-o`} style={{ verticalAlign: 'middle' }} />
  32. </DropdownTrigger>
  33. <DropdownContent>
  34. <EmojiPicker emojione={settings} onChange={this.handleChange} />
  35. </DropdownContent>
  36. </Dropdown>
  37. );
  38. }
  39. });
  40. export default injectIntl(EmojiPickerDropdown);