mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-16 13:14:58 +08:00
Merge pull request #4804 from matrix-org/travis/room-list/watchers
Trigger room-specific watchers whenever a higher level change happens
This commit is contained in:
commit
edafb2467d
@ -51,8 +51,17 @@ export class WatchManager {
|
|||||||
const roomWatchers = this._watchers[settingName];
|
const roomWatchers = this._watchers[settingName];
|
||||||
const callbacks = [];
|
const callbacks = [];
|
||||||
|
|
||||||
if (inRoomId !== null && roomWatchers[inRoomId]) callbacks.push(...roomWatchers[inRoomId]);
|
if (inRoomId !== null && roomWatchers[inRoomId]) {
|
||||||
if (roomWatchers[null]) callbacks.push(...roomWatchers[null]);
|
callbacks.push(...roomWatchers[inRoomId]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!inRoomId) {
|
||||||
|
// Fire updates to all the individual room watchers too, as they probably
|
||||||
|
// care about the change higher up.
|
||||||
|
callbacks.push(...Object.values(roomWatchers).reduce((r, a) => [...r, ...a], []));
|
||||||
|
} else if (roomWatchers[null]) {
|
||||||
|
callbacks.push(...roomWatchers[null]);
|
||||||
|
}
|
||||||
|
|
||||||
for (const callback of callbacks) {
|
for (const callback of callbacks) {
|
||||||
callback(inRoomId, atLevel, newValueAtLevel);
|
callback(inRoomId, atLevel, newValueAtLevel);
|
||||||
|
Loading…
Reference in New Issue
Block a user