Timeout on room deletion
And custom deletion notice state event. Issue #118.
This commit is contained in:
parent
d39357401b
commit
abd3892349
7 changed files with 164 additions and 17 deletions
|
|
@ -303,7 +303,6 @@ export default {
|
|||
client.on("Room", this.onRoom);
|
||||
client.on("Session.logged_out", this.onSessionLoggedOut);
|
||||
client.on("Room.myMembership", this.onRoomMyMembership);
|
||||
client.on("RoomMember.membership", this.onRoomMemberMembership);
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -313,7 +312,6 @@ export default {
|
|||
client.off("Room", this.onRoom);
|
||||
client.off("Session.logged_out", this.onSessionLoggedOut);
|
||||
client.off("Room.myMembership", this.onRoomMyMembership);
|
||||
client.off("RoomMember.membership", this.onRoomMemberMembership);
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -334,6 +332,17 @@ export default {
|
|||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case "m.room.member": {
|
||||
if (this.currentRoom && event.getRoomId() == this.currentRoom.roomId) { // Don't use this.currentRoomId, may be an alias. We need the real id!
|
||||
if (event.getContent().membership == "leave" && (event.getPrevContent() || {}).membership == "join" && event.getStateKey() == this.currentUserId && event.getSender() != this.currentUserId) {
|
||||
// We were kicked
|
||||
const wasPurged = (event.getContent().reason == "Room Deleted");
|
||||
this.$navigation.push({ name: "Goodbye", params: { roomWasPurged: wasPurged } }, -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
this.updateNotificationCount();
|
||||
},
|
||||
|
|
@ -353,17 +362,6 @@ export default {
|
|||
}
|
||||
},
|
||||
|
||||
onRoomMemberMembership(event, member, ignoredoldMembership) {
|
||||
if (member.userId == this.currentUserId && member.isKicked()) {
|
||||
if (this.currentRoomId == event.getRoomId()) {
|
||||
// We were kicked! Look at "reason", maybe a purge?
|
||||
const reason = event.getContent().reason || "";
|
||||
const roomWasPurged = (reason == "Room Deleted");
|
||||
this.$navigation.push({ name: "Goodbye", params: { roomWasPurged: roomWasPurged } }, -1);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
onSessionLoggedOut() {
|
||||
console.log("Logged out!");
|
||||
if (this.matrixClient) {
|
||||
|
|
@ -582,7 +580,7 @@ export default {
|
|||
var kickPromises = [];
|
||||
members.forEach(member => {
|
||||
if (member.userId != self.currentUserId) {
|
||||
kickPromises.push(this.matrixClient.kick(roomId, member.userId));
|
||||
kickPromises.push(this.matrixClient.kick(roomId, member.userId, "Room Deleted"));
|
||||
}
|
||||
});
|
||||
return Promise.all(kickPromises);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue