From 9b1926f902d751172d505eec5946e872b4288d2c Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Fri, 31 Aug 2018 16:11:37 +0200 Subject: [PATCH] also clear out lazy loaded members from storage --- src/models/room-state.js | 16 ++++++++++++++++ src/models/room.js | 1 + 2 files changed, 17 insertions(+) diff --git a/src/models/room-state.js b/src/models/room-state.js index fb049daa9..bb8e93fb9 100644 --- a/src/models/room-state.js +++ b/src/models/room-state.js @@ -443,6 +443,22 @@ RoomState.prototype.markOutOfBandMembersFailed = function() { this._oobMemberFlags.status = OOB_STATUS_NOTSTARTED; }; +/** + * Clears the loaded out-of-band members + */ +RoomState.prototype.clearOutOfBandMembers = function() { + let count = 0; + Object.keys(this.members).forEach((userId) => { + const member = this.members[userId]; + if (member.isOutOfBand()) { + ++count; + delete this.members[userId]; + } + }); + console.log(`LL: RoomState removed ${count} members...`); + this._oobMemberFlags.status = OOB_STATUS_NOTSTARTED; +}; + /** * Sets the loaded out-of-band members. * @param {MatrixEvent[]} stateEvents array of membership state events diff --git a/src/models/room.js b/src/models/room.js index 2d253d64e..552806238 100644 --- a/src/models/room.js +++ b/src/models/room.js @@ -465,6 +465,7 @@ Room.prototype.clearLoadedMembersIfNeeded = async function() { await this.loadMembersIfNeeded(); this._membersPromise = null; await this._client.store.clearOutOfBandMembers(this.roomId); + this.currentState.clearOutOfBandMembers(); } };