From 0d261c37c2ede83eb7a45f4721694d4ee299510f Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Tue, 29 Mar 2016 16:31:13 +0100 Subject: [PATCH] Update room header when room state changes Force an update so that we see the latest state. Fixes https://github.com/vector-im/vector-web/issues/1299 --- src/components/views/rooms/RoomHeader.js | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/components/views/rooms/RoomHeader.js b/src/components/views/rooms/RoomHeader.js index 45e5a79a24..3e237a8f95 100644 --- a/src/components/views/rooms/RoomHeader.js +++ b/src/components/views/rooms/RoomHeader.js @@ -48,12 +48,33 @@ module.exports = React.createClass({ }; }, + componentDidMount: function() { + var cli = MatrixClientPeg.get(); + cli.on("RoomState.events", this._onRoomStateEvents); + }, + componentDidUpdate: function() { if (this.refs.topic) { linkifyElement(this.refs.topic, linkifyMatrix.options); } }, + componentWillUnmount: function() { + var cli = MatrixClientPeg.get(); + if (cli) { + cli.removeListener("RoomState.events", this._onRoomStateEvents); + } + }, + + _onRoomStateEvents: function(event, state) { + if (!this.props.room || event.getRoomId() != this.props.room.roomId) { + return; + } + + // redisplay the room name, topic, etc. + this.forceUpdate(); + }, + onAvatarPickerClick: function(ev) { if (this.refs.file_label) { this.refs.file_label.click();