matrix-react-sdk
Version:
SDK for matrix.org using React
36 lines (32 loc) • 4.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.isRoomReady = isRoomReady;
var _matrix = require("matrix-js-sdk/src/matrix");
/*
Copyright 2024 New Vector Ltd.
Copyright 2022 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
/**
* Tests whether a room created based on a local room is ready.
*/
function isRoomReady(client, localRoom) {
// not ready if no actual room id exists
if (!localRoom.actualRoomId) return false;
const room = client.getRoom(localRoom.actualRoomId);
// not ready if the room does not exist
if (!room) return false;
// not ready if not all members joined/invited
if (room.getInvitedAndJoinedMemberCount() !== 1 + localRoom.targets?.length) return false;
const roomHistoryVisibilityEvents = room.currentState.getStateEvents(_matrix.EventType.RoomHistoryVisibility);
// not ready if the room history has not been configured
if (roomHistoryVisibilityEvents.length === 0) return false;
const roomEncryptionEvents = room.currentState.getStateEvents(_matrix.EventType.RoomEncryption);
// not ready if encryption has not been configured (applies only to encrypted rooms)
if (localRoom.encrypted === true && roomEncryptionEvents.length === 0) return false;
return true;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWF0cml4IiwicmVxdWlyZSIsImlzUm9vbVJlYWR5IiwiY2xpZW50IiwibG9jYWxSb29tIiwiYWN0dWFsUm9vbUlkIiwicm9vbSIsImdldFJvb20iLCJnZXRJbnZpdGVkQW5kSm9pbmVkTWVtYmVyQ291bnQiLCJ0YXJnZXRzIiwibGVuZ3RoIiwicm9vbUhpc3RvcnlWaXNpYmlsaXR5RXZlbnRzIiwiY3VycmVudFN0YXRlIiwiZ2V0U3RhdGVFdmVudHMiLCJFdmVudFR5cGUiLCJSb29tSGlzdG9yeVZpc2liaWxpdHkiLCJyb29tRW5jcnlwdGlvbkV2ZW50cyIsIlJvb21FbmNyeXB0aW9uIiwiZW5jcnlwdGVkIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2xvY2FsUm9vbS9pc1Jvb21SZWFkeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyBFdmVudFR5cGUsIE1hdHJpeENsaWVudCB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuaW1wb3J0IHsgTG9jYWxSb29tIH0gZnJvbSBcIi4uLy4uL21vZGVscy9Mb2NhbFJvb21cIjtcblxuLyoqXG4gKiBUZXN0cyB3aGV0aGVyIGEgcm9vbSBjcmVhdGVkIGJhc2VkIG9uIGEgbG9jYWwgcm9vbSBpcyByZWFkeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUm9vbVJlYWR5KGNsaWVudDogTWF0cml4Q2xpZW50LCBsb2NhbFJvb206IExvY2FsUm9vbSk6IGJvb2xlYW4ge1xuICAgIC8vIG5vdCByZWFkeSBpZiBubyBhY3R1YWwgcm9vbSBpZCBleGlzdHNcbiAgICBpZiAoIWxvY2FsUm9vbS5hY3R1YWxSb29tSWQpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IHJvb20gPSBjbGllbnQuZ2V0Um9vbShsb2NhbFJvb20uYWN0dWFsUm9vbUlkKTtcbiAgICAvLyBub3QgcmVhZHkgaWYgdGhlIHJvb20gZG9lcyBub3QgZXhpc3RcbiAgICBpZiAoIXJvb20pIHJldHVybiBmYWxzZTtcblxuICAgIC8vIG5vdCByZWFkeSBpZiBub3QgYWxsIG1lbWJlcnMgam9pbmVkL2ludml0ZWRcbiAgICBpZiAocm9vbS5nZXRJbnZpdGVkQW5kSm9pbmVkTWVtYmVyQ291bnQoKSAhPT0gMSArIGxvY2FsUm9vbS50YXJnZXRzPy5sZW5ndGgpIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IHJvb21IaXN0b3J5VmlzaWJpbGl0eUV2ZW50cyA9IHJvb20uY3VycmVudFN0YXRlLmdldFN0YXRlRXZlbnRzKEV2ZW50VHlwZS5Sb29tSGlzdG9yeVZpc2liaWxpdHkpO1xuICAgIC8vIG5vdCByZWFkeSBpZiB0aGUgcm9vbSBoaXN0b3J5IGhhcyBub3QgYmVlbiBjb25maWd1cmVkXG4gICAgaWYgKHJvb21IaXN0b3J5VmlzaWJpbGl0eUV2ZW50cy5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcblxuICAgIGNvbnN0IHJvb21FbmNyeXB0aW9uRXZlbnRzID0gcm9vbS5jdXJyZW50U3RhdGUuZ2V0U3RhdGVFdmVudHMoRXZlbnRUeXBlLlJvb21FbmNyeXB0aW9uKTtcbiAgICAvLyBub3QgcmVhZHkgaWYgZW5jcnlwdGlvbiBoYXMgbm90IGJlZW4gY29uZmlndXJlZCAoYXBwbGllcyBvbmx5IHRvIGVuY3J5cHRlZCByb29tcylcbiAgICBpZiAobG9jYWxSb29tLmVuY3J5cHRlZCA9PT0gdHJ1ZSAmJiByb29tRW5jcnlwdGlvbkV2ZW50cy5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcblxuICAgIHJldHVybiB0cnVlO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFRQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUE7QUFSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFNQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQyxXQUFXQSxDQUFDQyxNQUFvQixFQUFFQyxTQUFvQixFQUFXO0VBQzdFO0VBQ0EsSUFBSSxDQUFDQSxTQUFTLENBQUNDLFlBQVksRUFBRSxPQUFPLEtBQUs7RUFFekMsTUFBTUMsSUFBSSxHQUFHSCxNQUFNLENBQUNJLE9BQU8sQ0FBQ0gsU0FBUyxDQUFDQyxZQUFZLENBQUM7RUFDbkQ7RUFDQSxJQUFJLENBQUNDLElBQUksRUFBRSxPQUFPLEtBQUs7O0VBRXZCO0VBQ0EsSUFBSUEsSUFBSSxDQUFDRSw4QkFBOEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHSixTQUFTLENBQUNLLE9BQU8sRUFBRUMsTUFBTSxFQUFFLE9BQU8sS0FBSztFQUV6RixNQUFNQywyQkFBMkIsR0FBR0wsSUFBSSxDQUFDTSxZQUFZLENBQUNDLGNBQWMsQ0FBQ0MsaUJBQVMsQ0FBQ0MscUJBQXFCLENBQUM7RUFDckc7RUFDQSxJQUFJSiwyQkFBMkIsQ0FBQ0QsTUFBTSxLQUFLLENBQUMsRUFBRSxPQUFPLEtBQUs7RUFFMUQsTUFBTU0sb0JBQW9CLEdBQUdWLElBQUksQ0FBQ00sWUFBWSxDQUFDQyxjQUFjLENBQUNDLGlCQUFTLENBQUNHLGNBQWMsQ0FBQztFQUN2RjtFQUNBLElBQUliLFNBQVMsQ0FBQ2MsU0FBUyxLQUFLLElBQUksSUFBSUYsb0JBQW9CLENBQUNOLE1BQU0sS0FBSyxDQUFDLEVBQUUsT0FBTyxLQUFLO0VBRW5GLE9BQU8sSUFBSTtBQUNmIiwiaWdub3JlTGlzdCI6W119