matrix-react-sdk
Version:
SDK for matrix.org using React
48 lines (43 loc) • 5.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.hasRoomLiveVoiceBroadcast = void 0;
var _ = require("..");
var _arrays = require("../../utils/arrays");
/*
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.
*/
const hasRoomLiveVoiceBroadcast = async (client, room, userId) => {
let hasBroadcast = false;
let startedByUser = false;
let infoEvent = null;
const stateEvents = room.currentState.getStateEvents(_.VoiceBroadcastInfoEventType);
await (0, _arrays.asyncEvery)(stateEvents, async event => {
const state = event.getContent()?.state;
if (state && state !== _.VoiceBroadcastInfoState.Stopped) {
const startEvent = await (0, _.retrieveStartedInfoEvent)(event, client);
// skip if started voice broadcast event is redacted
if (startEvent?.isRedacted()) return true;
hasBroadcast = true;
infoEvent = startEvent;
// state key = sender's MXID
if (event.getStateKey() === userId) {
startedByUser = true;
// break here, because more than true / true is not possible
return false;
}
}
return true;
});
return {
hasBroadcast,
infoEvent,
startedByUser
};
};
exports.hasRoomLiveVoiceBroadcast = hasRoomLiveVoiceBroadcast;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfIiwicmVxdWlyZSIsIl9hcnJheXMiLCJoYXNSb29tTGl2ZVZvaWNlQnJvYWRjYXN0IiwiY2xpZW50Iiwicm9vbSIsInVzZXJJZCIsImhhc0Jyb2FkY2FzdCIsInN0YXJ0ZWRCeVVzZXIiLCJpbmZvRXZlbnQiLCJzdGF0ZUV2ZW50cyIsImN1cnJlbnRTdGF0ZSIsImdldFN0YXRlRXZlbnRzIiwiVm9pY2VCcm9hZGNhc3RJbmZvRXZlbnRUeXBlIiwiYXN5bmNFdmVyeSIsImV2ZW50Iiwic3RhdGUiLCJnZXRDb250ZW50IiwiVm9pY2VCcm9hZGNhc3RJbmZvU3RhdGUiLCJTdG9wcGVkIiwic3RhcnRFdmVudCIsInJldHJpZXZlU3RhcnRlZEluZm9FdmVudCIsImlzUmVkYWN0ZWQiLCJnZXRTdGF0ZUtleSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdm9pY2UtYnJvYWRjYXN0L3V0aWxzL2hhc1Jvb21MaXZlVm9pY2VCcm9hZGNhc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjIgVGhlIE1hdHJpeC5vcmcgRm91bmRhdGlvbiBDLkkuQy5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFHUEwtMy4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5XG5QbGVhc2Ugc2VlIExJQ0VOU0UgZmlsZXMgaW4gdGhlIHJlcG9zaXRvcnkgcm9vdCBmb3IgZnVsbCBkZXRhaWxzLlxuKi9cblxuaW1wb3J0IHsgTWF0cml4Q2xpZW50LCBNYXRyaXhFdmVudCwgUm9vbSB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuaW1wb3J0IHsgcmV0cmlldmVTdGFydGVkSW5mb0V2ZW50LCBWb2ljZUJyb2FkY2FzdEluZm9FdmVudFR5cGUsIFZvaWNlQnJvYWRjYXN0SW5mb1N0YXRlIH0gZnJvbSBcIi4uXCI7XG5pbXBvcnQgeyBhc3luY0V2ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxzL2FycmF5c1wiO1xuXG5pbnRlcmZhY2UgUmVzdWx0IHtcbiAgICAvLyB3aGV0aGVyIHRoZXJlIGlzIGEgbGl2ZSBicm9hZGNhc3QgaW4gdGhlIHJvb21cbiAgICBoYXNCcm9hZGNhc3Q6IGJvb2xlYW47XG4gICAgLy8gaW5mbyBldmVudCBvZiBhbnkgbGl2ZSBicm9hZGNhc3QgaW4gdGhlIHJvb21cbiAgICBpbmZvRXZlbnQ6IE1hdHJpeEV2ZW50IHwgbnVsbDtcbiAgICAvLyB3aGV0aGVyIHRoZSBicm9hZGNhc3Qgd2FzIHN0YXJ0ZWQgYnkgdGhlIHVzZXJcbiAgICBzdGFydGVkQnlVc2VyOiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgaGFzUm9vbUxpdmVWb2ljZUJyb2FkY2FzdCA9IGFzeW5jIChjbGllbnQ6IE1hdHJpeENsaWVudCwgcm9vbTogUm9vbSwgdXNlcklkPzogc3RyaW5nKTogUHJvbWlzZTxSZXN1bHQ+ID0+IHtcbiAgICBsZXQgaGFzQnJvYWRjYXN0ID0gZmFsc2U7XG4gICAgbGV0IHN0YXJ0ZWRCeVVzZXIgPSBmYWxzZTtcbiAgICBsZXQgaW5mb0V2ZW50OiBNYXRyaXhFdmVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3Qgc3RhdGVFdmVudHMgPSByb29tLmN1cnJlbnRTdGF0ZS5nZXRTdGF0ZUV2ZW50cyhWb2ljZUJyb2FkY2FzdEluZm9FdmVudFR5cGUpO1xuICAgIGF3YWl0IGFzeW5jRXZlcnkoc3RhdGVFdmVudHMsIGFzeW5jIChldmVudDogTWF0cml4RXZlbnQpID0+IHtcbiAgICAgICAgY29uc3Qgc3RhdGUgPSBldmVudC5nZXRDb250ZW50KCk/LnN0YXRlO1xuXG4gICAgICAgIGlmIChzdGF0ZSAmJiBzdGF0ZSAhPT0gVm9pY2VCcm9hZGNhc3RJbmZvU3RhdGUuU3RvcHBlZCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRFdmVudCA9IGF3YWl0IHJldHJpZXZlU3RhcnRlZEluZm9FdmVudChldmVudCwgY2xpZW50KTtcblxuICAgICAgICAgICAgLy8gc2tpcCBpZiBzdGFydGVkIHZvaWNlIGJyb2FkY2FzdCBldmVudCBpcyByZWRhY3RlZFxuICAgICAgICAgICAgaWYgKHN0YXJ0RXZlbnQ/LmlzUmVkYWN0ZWQoKSkgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgICAgIGhhc0Jyb2FkY2FzdCA9IHRydWU7XG4gICAgICAgICAgICBpbmZvRXZlbnQgPSBzdGFydEV2ZW50O1xuXG4gICAgICAgICAgICAvLyBzdGF0ZSBrZXkgPSBzZW5kZXIncyBNWElEXG4gICAgICAgICAgICBpZiAoZXZlbnQuZ2V0U3RhdGVLZXkoKSA9PT0gdXNlcklkKSB7XG4gICAgICAgICAgICAgICAgc3RhcnRlZEJ5VXNlciA9IHRydWU7XG4gICAgICAgICAgICAgICAgLy8gYnJlYWsgaGVyZSwgYmVjYXVzZSBtb3JlIHRoYW4gdHJ1ZSAvIHRydWUgaXMgbm90IHBvc3NpYmxlXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICBoYXNCcm9hZGNhc3QsXG4gICAgICAgIGluZm9FdmVudCxcbiAgICAgICAgc3RhcnRlZEJ5VXNlcixcbiAgICB9O1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBVUEsSUFBQUEsQ0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBZ0JPLE1BQU1FLHlCQUF5QixHQUFHLE1BQUFBLENBQU9DLE1BQW9CLEVBQUVDLElBQVUsRUFBRUMsTUFBZSxLQUFzQjtFQUNuSCxJQUFJQyxZQUFZLEdBQUcsS0FBSztFQUN4QixJQUFJQyxhQUFhLEdBQUcsS0FBSztFQUN6QixJQUFJQyxTQUE2QixHQUFHLElBQUk7RUFFeEMsTUFBTUMsV0FBVyxHQUFHTCxJQUFJLENBQUNNLFlBQVksQ0FBQ0MsY0FBYyxDQUFDQyw2QkFBMkIsQ0FBQztFQUNqRixNQUFNLElBQUFDLGtCQUFVLEVBQUNKLFdBQVcsRUFBRSxNQUFPSyxLQUFrQixJQUFLO0lBQ3hELE1BQU1DLEtBQUssR0FBR0QsS0FBSyxDQUFDRSxVQUFVLENBQUMsQ0FBQyxFQUFFRCxLQUFLO0lBRXZDLElBQUlBLEtBQUssSUFBSUEsS0FBSyxLQUFLRSx5QkFBdUIsQ0FBQ0MsT0FBTyxFQUFFO01BQ3BELE1BQU1DLFVBQVUsR0FBRyxNQUFNLElBQUFDLDBCQUF3QixFQUFDTixLQUFLLEVBQUVYLE1BQU0sQ0FBQzs7TUFFaEU7TUFDQSxJQUFJZ0IsVUFBVSxFQUFFRSxVQUFVLENBQUMsQ0FBQyxFQUFFLE9BQU8sSUFBSTtNQUV6Q2YsWUFBWSxHQUFHLElBQUk7TUFDbkJFLFNBQVMsR0FBR1csVUFBVTs7TUFFdEI7TUFDQSxJQUFJTCxLQUFLLENBQUNRLFdBQVcsQ0FBQyxDQUFDLEtBQUtqQixNQUFNLEVBQUU7UUFDaENFLGFBQWEsR0FBRyxJQUFJO1FBQ3BCO1FBQ0EsT0FBTyxLQUFLO01BQ2hCO0lBQ0o7SUFFQSxPQUFPLElBQUk7RUFDZixDQUFDLENBQUM7RUFFRixPQUFPO0lBQ0hELFlBQVk7SUFDWkUsU0FBUztJQUNURDtFQUNKLENBQUM7QUFDTCxDQUFDO0FBQUNnQixPQUFBLENBQUFyQix5QkFBQSxHQUFBQSx5QkFBQSIsImlnbm9yZUxpc3QiOltdfQ==