summaryrefslogtreecommitdiffstats
path: root/web/react
diff options
context:
space:
mode:
authorJoramWilander <jwawilander@gmail.com>2015-12-02 10:56:48 -0500
committerJoramWilander <jwawilander@gmail.com>2015-12-02 10:56:48 -0500
commitd0578f73bf6540013a59f80d2fa0c0d878be6365 (patch)
tree95dfd83a0505b43caf6b8e319be1c00c5d90f386 /web/react
parent5e51de6f2c9a69a205abe9f8ebd26592809fb0d0 (diff)
downloadchat-d0578f73bf6540013a59f80d2fa0c0d878be6365.tar.gz
chat-d0578f73bf6540013a59f80d2fa0c0d878be6365.tar.bz2
chat-d0578f73bf6540013a59f80d2fa0c0d878be6365.zip
Fix emitter leak
Diffstat (limited to 'web/react')
-rw-r--r--web/react/components/posts_view.jsx10
1 files changed, 8 insertions, 2 deletions
diff --git a/web/react/components/posts_view.jsx b/web/react/components/posts_view.jsx
index dc23d6792..d0eee5a23 100644
--- a/web/react/components/posts_view.jsx
+++ b/web/react/components/posts_view.jsx
@@ -280,17 +280,23 @@ export default class PostsView extends React.Component {
this.updateScrolling();
}
window.addEventListener('resize', this.handleResize);
- PreferenceStore.addChangeListener(this.updateState);
}
componentWillUnmount() {
window.removeEventListener('resize', this.handleResize);
- PreferenceStore.removeChangeListener(this.updateState);
}
componentDidUpdate() {
if (this.props.postList != null) {
this.updateScrolling();
}
}
+ componentWillReceiveProps(nextProps) {
+ if (!this.props.isActive && nextProps.isActive) {
+ this.updateState();
+ PreferenceStore.addChangeListener(this.updateState);
+ } else if (this.props.isActive && !nextProps.isActive) {
+ PreferenceStore.removeChangeListener(this.updateState);
+ }
+ }
shouldComponentUpdate(nextProps, nextState) {
if (this.props.isActive !== nextProps.isActive) {
return true;