From 5ad5a714bc2b3b29605100ee3c0a4bfa11c5e05f Mon Sep 17 00:00:00 2001 From: Devin Howard Date: Tue, 3 Jan 2017 16:27:11 -0500 Subject: [PATCH] emoji are replaced in the text area --- frontend/src/components/MapChat/NewMessage.js | 40 ++++++++++++++++--- frontend/src/components/MapChat/index.js | 4 +- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/frontend/src/components/MapChat/NewMessage.js b/frontend/src/components/MapChat/NewMessage.js index 0e03e7e1..36aa50a2 100644 --- a/frontend/src/components/MapChat/NewMessage.js +++ b/frontend/src/components/MapChat/NewMessage.js @@ -1,5 +1,6 @@ import React, { PropTypes, Component } from 'react' -import { Picker } from 'emoji-mart' +import { Picker, emojiIndex } from 'emoji-mart' +import { escapeRegExp } from 'lodash' class NewMessage extends Component { constructor(props) { @@ -15,24 +16,53 @@ class NewMessage extends Component { this.setState({ showEmojiPicker: !this.state.showEmojiPicker }) } + textAreaValue = () => { + let { messageText } = this.props + Object.keys(emojiIndex.emoticons).forEach(key => { + const value = emojiIndex.emoticons[key] + messageText = messageText.replace(new RegExp(escapeRegExp(key), 'g'), `:${value}:`) + }) + Object.keys(emojiIndex.emojis).forEach(key => { + const emoji = emojiIndex.emojis[key] + messageText = messageText.replace(new RegExp(escapeRegExp(emoji.colons), 'g'), emoji.native) + }) + return messageText + } + + handleClick = (emoji, event) => { + const { messageText } = this.props + this.props.handleChange({ target: { + value: messageText + emoji.colons + }}) + } + render = () => { return (
Emoji - -