Merge pull request #6342 from vector-im/luke/fix-stale-sub-list-notif-count-after-room-read
Force update RoomSubList after reading a room
This commit is contained in:
commit
8853496b1b
|
@ -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 New Issue