Force update RoomSubList after reading a room
so that the notification count is updated. Previously we relied on a force update from RoomList, which was removed as part of the optimisations in https://github.com/matrix-org/matrix-react-sdk/pull/1801
This commit is contained in:
parent
0e2a911b57
commit
7dc82e2e7a
1 changed files with 20 additions and 0 deletions
|
@ -88,6 +88,11 @@ var RoomSubList = React.createClass({
|
||||||
this.setState({
|
this.setState({
|
||||||
sortedList: this.applySearchFilter(this.props.list, this.props.searchFilter),
|
sortedList: this.applySearchFilter(this.props.list, this.props.searchFilter),
|
||||||
});
|
});
|
||||||
|
this.dispatcherRef = dis.register(this.onAction);
|
||||||
|
},
|
||||||
|
|
||||||
|
componentWillUnmount: function() {
|
||||||
|
dis.unregister(this.dispatcherRef);
|
||||||
},
|
},
|
||||||
|
|
||||||
componentWillReceiveProps: function(newProps) {
|
componentWillReceiveProps: function(newProps) {
|
||||||
|
@ -116,6 +121,21 @@ var RoomSubList = React.createClass({
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onAction: function(payload) {
|
||||||
|
// XXX: Previously RoomList would forceUpdate whenever on_room_read is dispatched,
|
||||||
|
// but this is no longer true, so we must do it here (and can apply the small
|
||||||
|
// optimisation of checking that we care about the room being read).
|
||||||
|
//
|
||||||
|
// Ultimately we need to transition to a state pushing flow where something
|
||||||
|
// explicitly notifies the components concerned that the notif count for a room
|
||||||
|
// has change (e.g. a Flux store).
|
||||||
|
if (payload.action === 'on_room_read' &&
|
||||||
|
this.props.list.some((r) => r.roomId === payload.roomId)
|
||||||
|
) {
|
||||||
|
this.forceUpdate();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
onClick: function(ev) {
|
onClick: function(ev) {
|
||||||
if (this.isCollapsableOnClick()) {
|
if (this.isCollapsableOnClick()) {
|
||||||
// The header isCollapsable, so the click is to be interpreted as collapse and truncation logic
|
// The header isCollapsable, so the click is to be interpreted as collapse and truncation logic
|
||||||
|
|
Loading…
Reference in a new issue