matrix-react-sdk
Version:
SDK for matrix.org using React
73 lines (71 loc) • 10.2 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.VoiceBroadcastRecordingsStoreEvent = exports.VoiceBroadcastRecordingsStore = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _matrix = require("matrix-js-sdk/src/matrix");
var _ = require("..");
/*
Copyright 2024 New Vector Ltd.
Copyright 2022, 2023 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.
*/
let VoiceBroadcastRecordingsStoreEvent = exports.VoiceBroadcastRecordingsStoreEvent = /*#__PURE__*/function (VoiceBroadcastRecordingsStoreEvent) {
VoiceBroadcastRecordingsStoreEvent["CurrentChanged"] = "current_changed";
return VoiceBroadcastRecordingsStoreEvent;
}({});
/**
* This store provides access to the current and specific Voice Broadcast recordings.
*/
class VoiceBroadcastRecordingsStore extends _matrix.TypedEventEmitter {
constructor() {
super();
(0, _defineProperty2.default)(this, "current", null);
(0, _defineProperty2.default)(this, "recordings", new Map());
(0, _defineProperty2.default)(this, "onCurrentStateChanged", state => {
if (state === _.VoiceBroadcastInfoState.Stopped) {
this.clearCurrent();
}
});
}
setCurrent(current) {
if (this.current === current) return;
const infoEventId = current.infoEvent.getId();
if (!infoEventId) {
throw new Error("Got broadcast info event without Id");
}
if (this.current) {
this.current.off(_.VoiceBroadcastRecordingEvent.StateChanged, this.onCurrentStateChanged);
}
this.current = current;
this.current.on(_.VoiceBroadcastRecordingEvent.StateChanged, this.onCurrentStateChanged);
this.recordings.set(infoEventId, current);
this.emit(VoiceBroadcastRecordingsStoreEvent.CurrentChanged, current);
}
getCurrent() {
return this.current;
}
hasCurrent() {
return this.current !== null;
}
clearCurrent() {
if (!this.current) return;
this.current.off(_.VoiceBroadcastRecordingEvent.StateChanged, this.onCurrentStateChanged);
this.current = null;
this.emit(VoiceBroadcastRecordingsStoreEvent.CurrentChanged, null);
}
getByInfoEvent(infoEvent, client) {
const infoEventId = infoEvent.getId();
if (!infoEventId) {
throw new Error("Got broadcast info event without Id");
}
const recording = this.recordings.get(infoEventId) || new _.VoiceBroadcastRecording(infoEvent, client);
this.recordings.set(infoEventId, recording);
return recording;
}
}
exports.VoiceBroadcastRecordingsStore = VoiceBroadcastRecordingsStore;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbWF0cml4IiwicmVxdWlyZSIsIl8iLCJWb2ljZUJyb2FkY2FzdFJlY29yZGluZ3NTdG9yZUV2ZW50IiwiZXhwb3J0cyIsIlZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nc1N0b3JlIiwiVHlwZWRFdmVudEVtaXR0ZXIiLCJjb25zdHJ1Y3RvciIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkZWZhdWx0IiwiTWFwIiwic3RhdGUiLCJWb2ljZUJyb2FkY2FzdEluZm9TdGF0ZSIsIlN0b3BwZWQiLCJjbGVhckN1cnJlbnQiLCJzZXRDdXJyZW50IiwiY3VycmVudCIsImluZm9FdmVudElkIiwiaW5mb0V2ZW50IiwiZ2V0SWQiLCJFcnJvciIsIm9mZiIsIlZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nRXZlbnQiLCJTdGF0ZUNoYW5nZWQiLCJvbkN1cnJlbnRTdGF0ZUNoYW5nZWQiLCJvbiIsInJlY29yZGluZ3MiLCJzZXQiLCJlbWl0IiwiQ3VycmVudENoYW5nZWQiLCJnZXRDdXJyZW50IiwiaGFzQ3VycmVudCIsImdldEJ5SW5mb0V2ZW50IiwiY2xpZW50IiwicmVjb3JkaW5nIiwiZ2V0IiwiVm9pY2VCcm9hZGNhc3RSZWNvcmRpbmciXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdm9pY2UtYnJvYWRjYXN0L3N0b3Jlcy9Wb2ljZUJyb2FkY2FzdFJlY29yZGluZ3NTdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiwgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyBNYXRyaXhDbGllbnQsIE1hdHJpeEV2ZW50LCBUeXBlZEV2ZW50RW1pdHRlciB9IGZyb20gXCJtYXRyaXgtanMtc2RrL3NyYy9tYXRyaXhcIjtcblxuaW1wb3J0IHtcbiAgICBWb2ljZUJyb2FkY2FzdEluZm9TdGF0ZSxcbiAgICBWb2ljZUJyb2FkY2FzdFJlY29yZGluZyxcbiAgICBWb2ljZUJyb2FkY2FzdFJlY29yZGluZ0V2ZW50LFxuICAgIFZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nU3RhdGUsXG59IGZyb20gXCIuLlwiO1xuXG5leHBvcnQgZW51bSBWb2ljZUJyb2FkY2FzdFJlY29yZGluZ3NTdG9yZUV2ZW50IHtcbiAgICBDdXJyZW50Q2hhbmdlZCA9IFwiY3VycmVudF9jaGFuZ2VkXCIsXG59XG5cbmludGVyZmFjZSBFdmVudE1hcCB7XG4gICAgW1ZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nc1N0b3JlRXZlbnQuQ3VycmVudENoYW5nZWRdOiAocmVjb3JkaW5nOiBWb2ljZUJyb2FkY2FzdFJlY29yZGluZyB8IG51bGwpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogVGhpcyBzdG9yZSBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIGN1cnJlbnQgYW5kIHNwZWNpZmljIFZvaWNlIEJyb2FkY2FzdCByZWNvcmRpbmdzLlxuICovXG5leHBvcnQgY2xhc3MgVm9pY2VCcm9hZGNhc3RSZWNvcmRpbmdzU3RvcmUgZXh0ZW5kcyBUeXBlZEV2ZW50RW1pdHRlcjxWb2ljZUJyb2FkY2FzdFJlY29yZGluZ3NTdG9yZUV2ZW50LCBFdmVudE1hcD4ge1xuICAgIHByaXZhdGUgY3VycmVudDogVm9pY2VCcm9hZGNhc3RSZWNvcmRpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIHJlY29yZGluZ3MgPSBuZXcgTWFwPHN0cmluZywgVm9pY2VCcm9hZGNhc3RSZWNvcmRpbmc+KCk7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEN1cnJlbnQoY3VycmVudDogVm9pY2VCcm9hZGNhc3RSZWNvcmRpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudCA9PT0gY3VycmVudCkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGluZm9FdmVudElkID0gY3VycmVudC5pbmZvRXZlbnQuZ2V0SWQoKTtcblxuICAgICAgICBpZiAoIWluZm9FdmVudElkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJHb3QgYnJvYWRjYXN0IGluZm8gZXZlbnQgd2l0aG91dCBJZFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudC5vZmYoVm9pY2VCcm9hZGNhc3RSZWNvcmRpbmdFdmVudC5TdGF0ZUNoYW5nZWQsIHRoaXMub25DdXJyZW50U3RhdGVDaGFuZ2VkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3VycmVudCA9IGN1cnJlbnQ7XG4gICAgICAgIHRoaXMuY3VycmVudC5vbihWb2ljZUJyb2FkY2FzdFJlY29yZGluZ0V2ZW50LlN0YXRlQ2hhbmdlZCwgdGhpcy5vbkN1cnJlbnRTdGF0ZUNoYW5nZWQpO1xuICAgICAgICB0aGlzLnJlY29yZGluZ3Muc2V0KGluZm9FdmVudElkLCBjdXJyZW50KTtcbiAgICAgICAgdGhpcy5lbWl0KFZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nc1N0b3JlRXZlbnQuQ3VycmVudENoYW5nZWQsIGN1cnJlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDdXJyZW50KCk6IFZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0N1cnJlbnQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnQgIT09IG51bGw7XG4gICAgfVxuXG4gICAgcHVibGljIGNsZWFyQ3VycmVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnQpIHJldHVybjtcblxuICAgICAgICB0aGlzLmN1cnJlbnQub2ZmKFZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nRXZlbnQuU3RhdGVDaGFuZ2VkLCB0aGlzLm9uQ3VycmVudFN0YXRlQ2hhbmdlZCk7XG4gICAgICAgIHRoaXMuY3VycmVudCA9IG51bGw7XG4gICAgICAgIHRoaXMuZW1pdChWb2ljZUJyb2FkY2FzdFJlY29yZGluZ3NTdG9yZUV2ZW50LkN1cnJlbnRDaGFuZ2VkLCBudWxsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QnlJbmZvRXZlbnQoaW5mb0V2ZW50OiBNYXRyaXhFdmVudCwgY2xpZW50OiBNYXRyaXhDbGllbnQpOiBWb2ljZUJyb2FkY2FzdFJlY29yZGluZyB7XG4gICAgICAgIGNvbnN0IGluZm9FdmVudElkID0gaW5mb0V2ZW50LmdldElkKCk7XG5cbiAgICAgICAgaWYgKCFpbmZvRXZlbnRJZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiR290IGJyb2FkY2FzdCBpbmZvIGV2ZW50IHdpdGhvdXQgSWRcIik7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWNvcmRpbmcgPSB0aGlzLnJlY29yZGluZ3MuZ2V0KGluZm9FdmVudElkKSB8fCBuZXcgVm9pY2VCcm9hZGNhc3RSZWNvcmRpbmcoaW5mb0V2ZW50LCBjbGllbnQpO1xuICAgICAgICB0aGlzLnJlY29yZGluZ3Muc2V0KGluZm9FdmVudElkLCByZWNvcmRpbmcpO1xuICAgICAgICByZXR1cm4gcmVjb3JkaW5nO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25DdXJyZW50U3RhdGVDaGFuZ2VkID0gKHN0YXRlOiBWb2ljZUJyb2FkY2FzdFJlY29yZGluZ1N0YXRlKTogdm9pZCA9PiB7XG4gICAgICAgIGlmIChzdGF0ZSA9PT0gVm9pY2VCcm9hZGNhc3RJbmZvU3RhdGUuU3RvcHBlZCkge1xuICAgICAgICAgICAgdGhpcy5jbGVhckN1cnJlbnQoKTtcbiAgICAgICAgfVxuICAgIH07XG59XG4iXSwibWFwcGluZ3Mi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