Cache isConfCallRoom

This only needs to be calculated one per room
pull/21833/head
lukebarnard 2018-01-05 14:53:04 +00:00
parent 8ade357349
commit 8509db1bda
1 changed files with 21 additions and 1 deletions

View File

@ -43,7 +43,7 @@ export function getOnlyOtherMember(room, me) {
return null; return null;
} }
export function isConfCallRoom(room, me, conferenceHandler) { function _isConfCallRoom(room, me, conferenceHandler) {
if (!conferenceHandler) return false; if (!conferenceHandler) return false;
if (me.membership != "join") { if (me.membership != "join") {
@ -58,6 +58,26 @@ export function isConfCallRoom(room, me, conferenceHandler) {
if (conferenceHandler.isConferenceUser(otherMember.userId)) { if (conferenceHandler.isConferenceUser(otherMember.userId)) {
return true; return true;
} }
return false;
}
// Cache whether a room is a conference call. Assumes that rooms will always
// either will or will not be a conference call room.
const isConfCallRoomCache = {
// $roomId: bool
};
export function isConfCallRoom(room, me, conferenceHandler) {
if (isConfCallRoomCache[room.roomId] !== undefined) {
return isConfCallRoomCache[room.roomId];
}
const result = _isConfCallRoom(room, me, conferenceHandler);
isConfCallRoomCache[room.roomId] = result;
return result;
} }
export function looksLikeDirectMessageRoom(room, me) { export function looksLikeDirectMessageRoom(room, me) {