summaryrefslogtreecommitdiffstats
path: root/webapp/components/emoji_picker/emoji_picker_container.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/components/emoji_picker/emoji_picker_container.jsx')
-rw-r--r--webapp/components/emoji_picker/emoji_picker_container.jsx46
1 files changed, 46 insertions, 0 deletions
diff --git a/webapp/components/emoji_picker/emoji_picker_container.jsx b/webapp/components/emoji_picker/emoji_picker_container.jsx
new file mode 100644
index 000000000..7cdc0e4b9
--- /dev/null
+++ b/webapp/components/emoji_picker/emoji_picker_container.jsx
@@ -0,0 +1,46 @@
+// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+import React from 'react';
+
+import EmojiStore from 'stores/emoji_store.jsx';
+
+import EmojiPicker from './emoji_picker.jsx';
+
+export default class EmojiPickerContainer extends React.Component {
+ static propTypes = {
+ onEmojiClick: React.PropTypes.func.isRequred
+ }
+
+ constructor(props) {
+ super(props);
+ this.handleEmojiChange = this.handleEmojiChange.bind(this);
+
+ this.state = {
+ customEmojis: EmojiStore.getCustomEmojiMap().values() ? EmojiStore.getCustomEmojiMap().values() : []
+ };
+ }
+
+ componentDidMount() {
+ EmojiStore.addChangeListener(this.handleEmojiChange);
+ }
+
+ componentWillUnount() {
+ EmojiStore.removeChangeListener(this.handleEmojiChange);
+ }
+
+ handleEmojiChange() {
+ this.setState({
+ customEmojis: EmojiStore.getCustomEmojiMap().values()
+ });
+ }
+
+ render() {
+ return (
+ <EmojiPicker
+ customEmojis={EmojiStore.getCustomEmojiMap().values()}
+ onEmojiClick={this.props.onEmojiClick}
+ />
+ );
+ }
+}