diff --git a/src/components/views/rooms/PinnedEventsPanel.js b/src/components/views/rooms/PinnedEventsPanel.js index 4624b3c051..50c40142da 100644 --- a/src/components/views/rooms/PinnedEventsPanel.js +++ b/src/components/views/rooms/PinnedEventsPanel.js @@ -39,6 +39,19 @@ module.exports = React.createClass({ componentDidMount: function() { this._updatePinnedMessages(); + MatrixClientPeg.get().on("RoomState.events", this._onStateEvent); + }, + + componentWillUnmount: function() { + if (MatrixClientPeg.get()) { + MatrixClientPeg.get().removeListener("RoomState.events", this._onStateEvent); + } + }, + + _onStateEvent: function(ev) { + if (ev.getRoomId() === this.props.room.roomId && ev.getType() === "m.room.pinned_events") { + this._updatePinnedMessages(); + } }, _updatePinnedMessages: function() {