diff options
Diffstat (limited to 'webapp/components/emoji_picker/emoji_picker_container.jsx')
-rw-r--r-- | webapp/components/emoji_picker/emoji_picker_container.jsx | 46 |
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} + /> + ); + } +} |