mirror of https://github.com/vector-im/riot-web
observe powerlevels from state event, less handlers this way
parent
5ef673e80e
commit
12f55391db
|
@ -78,7 +78,6 @@ export class RoomPermaLinkCreator {
|
||||||
this._allowedHostsRegexps = null;
|
this._allowedHostsRegexps = null;
|
||||||
this._serverCandidates = null;
|
this._serverCandidates = null;
|
||||||
|
|
||||||
this.onPowerlevel = this.onPowerlevel.bind(this);
|
|
||||||
this.onMembership = this.onMembership.bind(this);
|
this.onMembership = this.onMembership.bind(this);
|
||||||
this.onRoomState = this.onRoomState.bind(this);
|
this.onRoomState = this.onRoomState.bind(this);
|
||||||
}
|
}
|
||||||
|
@ -92,13 +91,11 @@ export class RoomPermaLinkCreator {
|
||||||
start() {
|
start() {
|
||||||
this.load();
|
this.load();
|
||||||
this._room.on("RoomMember.membership", this.onMembership);
|
this._room.on("RoomMember.membership", this.onMembership);
|
||||||
this._room.on("RoomMember.powerLevel", this.onPowerlevel);
|
|
||||||
this._room.on("RoomState.events", this.onRoomState);
|
this._room.on("RoomState.events", this.onRoomState);
|
||||||
}
|
}
|
||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
this._room.removeListener("RoomMember.membership", this.onMembership);
|
this._room.removeListener("RoomMember.membership", this.onMembership);
|
||||||
this._room.removeListener("RoomMember.powerLevel", this.onPowerlevel);
|
|
||||||
this._room.removeListener("RoomState.events", this.onRoomState);
|
this._room.removeListener("RoomState.events", this.onRoomState);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,10 +116,16 @@ export class RoomPermaLinkCreator {
|
||||||
}
|
}
|
||||||
|
|
||||||
onRoomState(event) {
|
onRoomState(event) {
|
||||||
if (event.getType() === "m.room.server_acl") {
|
switch (event.getType()) {
|
||||||
|
case "m.room.server_acl":
|
||||||
this._updateAllowedServers();
|
this._updateAllowedServers();
|
||||||
this._updatePopulationMap();
|
this._updatePopulationMap();
|
||||||
this._updateServerCandidates();
|
this._updateServerCandidates();
|
||||||
|
return;
|
||||||
|
case "m.room.power_levels":
|
||||||
|
this._updateHighestPlUser();
|
||||||
|
this._updateServerCandidates();
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,11 +146,6 @@ export class RoomPermaLinkCreator {
|
||||||
this._updateServerCandidates();
|
this._updateServerCandidates();
|
||||||
}
|
}
|
||||||
|
|
||||||
onPowerlevel() {
|
|
||||||
this._updateHighestPlUser();
|
|
||||||
this._updateServerCandidates();
|
|
||||||
}
|
|
||||||
|
|
||||||
_updateHighestPlUser() {
|
_updateHighestPlUser() {
|
||||||
const plEvent = this._room.currentState.getStateEvents("m.room.power_levels", "");
|
const plEvent = this._room.currentState.getStateEvents("m.room.power_levels", "");
|
||||||
const content = plEvent.getContent();
|
const content = plEvent.getContent();
|
||||||
|
|
Loading…
Reference in New Issue