From caef414abea77bf0576aef927c9eaf0f205f9b6f Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Tue, 12 Jul 2016 16:06:03 -0400 Subject: [PATCH] PLT-3631 Properly update PostViewController when emojis change (#3565) * Properly remove custom emojis from clientside store * Properly update PostViewController when emojis change --- webapp/components/post_view/post_view_controller.jsx | 4 ++++ webapp/stores/emoji_store.jsx | 12 ++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/webapp/components/post_view/post_view_controller.jsx b/webapp/components/post_view/post_view_controller.jsx index 17c3e94ae1..e5743e657a 100644 --- a/webapp/components/post_view/post_view_controller.jsx +++ b/webapp/components/post_view/post_view_controller.jsx @@ -247,6 +247,10 @@ export default class PostViewController extends React.Component { return true; } + if (nextState.emojis !== this.state.emojis) { + return true; + } + return false; } diff --git a/webapp/stores/emoji_store.jsx b/webapp/stores/emoji_store.jsx index 5e1d81dd3f..e369885b42 100644 --- a/webapp/stores/emoji_store.jsx +++ b/webapp/stores/emoji_store.jsx @@ -54,12 +54,13 @@ class EmojiStore extends EventEmitter { this.addCustomEmoji(emoji); } - // add custom emojis to the map first so that they can't override system ones - this.emojis = new Map([...this.customEmojis, ...this.systemEmojis]); + this.updateEmojiMap(); } addCustomEmoji(emoji) { this.customEmojis.set(emoji.name, emoji); + + // this doesn't update this.emojis, but it's only called by setCustomEmojis which does that afterwards } removeCustomEmoji(id) { @@ -69,6 +70,13 @@ class EmojiStore extends EventEmitter { break; } } + + this.updateEmojiMap(); + } + + updateEmojiMap() { + // add custom emojis to the map first so that they can't override system ones + this.emojis = new Map([...this.customEmojis, ...this.systemEmojis]); } getSystemEmojis() {