UNPKG

matrix-react-sdk

Version:
69 lines (66 loc) 10.3 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useVoiceBroadcastRecording = void 0; var _react = _interopRequireDefault(require("react")); var _ = require(".."); var _QuestionDialog = _interopRequireDefault(require("../../components/views/dialogs/QuestionDialog")); var _useEventEmitter = require("../../hooks/useEventEmitter"); var _languageHandler = require("../../languageHandler"); var _MatrixClientPeg = require("../../MatrixClientPeg"); var _Modal = _interopRequireDefault(require("../../Modal")); /* 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. */ const showStopBroadcastingDialog = async () => { const { finished } = _Modal.default.createDialog(_QuestionDialog.default, { title: (0, _languageHandler._t)("voice_broadcast|confirm_stop_title"), description: /*#__PURE__*/_react.default.createElement("p", null, (0, _languageHandler._t)("voice_broadcast|confirm_stop_description")), button: (0, _languageHandler._t)("voice_broadcast|confirm_stop_affirm") }); const [confirmed] = await finished; return !!confirmed; }; const useVoiceBroadcastRecording = recording => { const client = _MatrixClientPeg.MatrixClientPeg.safeGet(); const roomId = recording.infoEvent.getRoomId(); const room = client.getRoom(roomId); if (!room) { throw new Error("Unable to find voice broadcast room with Id: " + roomId); } const sender = recording.infoEvent.sender; if (!sender) { throw new Error(`Voice Broadcast sender not found (event ${recording.infoEvent.getId()})`); } const stopRecording = async () => { const confirmed = await showStopBroadcastingDialog(); if (confirmed) { await recording.stop(); } }; const recordingState = (0, _useEventEmitter.useTypedEventEmitterState)(recording, _.VoiceBroadcastRecordingEvent.StateChanged, state => { return state ?? recording.getState(); }); const timeLeft = (0, _useEventEmitter.useTypedEventEmitterState)(recording, _.VoiceBroadcastRecordingEvent.TimeLeftChanged, t => { return t ?? recording.getTimeLeft(); }); const live = [_.VoiceBroadcastInfoState.Started, _.VoiceBroadcastInfoState.Resumed].includes(recordingState); return { live, timeLeft, recordingState, room, sender, stopRecording, toggleRecording: recording.toggle }; }; exports.useVoiceBroadcastRecording = useVoiceBroadcastRecording; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl8iLCJfUXVlc3Rpb25EaWFsb2ciLCJfdXNlRXZlbnRFbWl0dGVyIiwiX2xhbmd1YWdlSGFuZGxlciIsIl9NYXRyaXhDbGllbnRQZWciLCJfTW9kYWwiLCJzaG93U3RvcEJyb2FkY2FzdGluZ0RpYWxvZyIsImZpbmlzaGVkIiwiTW9kYWwiLCJjcmVhdGVEaWFsb2ciLCJRdWVzdGlvbkRpYWxvZyIsInRpdGxlIiwiX3QiLCJkZXNjcmlwdGlvbiIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwiYnV0dG9uIiwiY29uZmlybWVkIiwidXNlVm9pY2VCcm9hZGNhc3RSZWNvcmRpbmciLCJyZWNvcmRpbmciLCJjbGllbnQiLCJNYXRyaXhDbGllbnRQZWciLCJzYWZlR2V0Iiwicm9vbUlkIiwiaW5mb0V2ZW50IiwiZ2V0Um9vbUlkIiwicm9vbSIsImdldFJvb20iLCJFcnJvciIsInNlbmRlciIsImdldElkIiwic3RvcFJlY29yZGluZyIsInN0b3AiLCJyZWNvcmRpbmdTdGF0ZSIsInVzZVR5cGVkRXZlbnRFbWl0dGVyU3RhdGUiLCJWb2ljZUJyb2FkY2FzdFJlY29yZGluZ0V2ZW50IiwiU3RhdGVDaGFuZ2VkIiwic3RhdGUiLCJnZXRTdGF0ZSIsInRpbWVMZWZ0IiwiVGltZUxlZnRDaGFuZ2VkIiwidCIsImdldFRpbWVMZWZ0IiwibGl2ZSIsIlZvaWNlQnJvYWRjYXN0SW5mb1N0YXRlIiwiU3RhcnRlZCIsIlJlc3VtZWQiLCJpbmNsdWRlcyIsInRvZ2dsZVJlY29yZGluZyIsInRvZ2dsZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdm9pY2UtYnJvYWRjYXN0L2hvb2tzL3VzZVZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuQ29weXJpZ2h0IDIwMjQgTmV3IFZlY3RvciBMdGQuXG5Db3B5cmlnaHQgMjAyMiwgMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgeyBSb29tLCBSb29tTWVtYmVyIH0gZnJvbSBcIm1hdHJpeC1qcy1zZGsvc3JjL21hdHJpeFwiO1xuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQge1xuICAgIFZvaWNlQnJvYWRjYXN0SW5mb1N0YXRlLFxuICAgIFZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nLFxuICAgIFZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nRXZlbnQsXG4gICAgVm9pY2VCcm9hZGNhc3RSZWNvcmRpbmdTdGF0ZSxcbn0gZnJvbSBcIi4uXCI7XG5pbXBvcnQgUXVlc3Rpb25EaWFsb2cgZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvdmlld3MvZGlhbG9ncy9RdWVzdGlvbkRpYWxvZ1wiO1xuaW1wb3J0IHsgdXNlVHlwZWRFdmVudEVtaXR0ZXJTdGF0ZSB9IGZyb20gXCIuLi8uLi9ob29rcy91c2VFdmVudEVtaXR0ZXJcIjtcbmltcG9ydCB7IF90IH0gZnJvbSBcIi4uLy4uL2xhbmd1YWdlSGFuZGxlclwiO1xuaW1wb3J0IHsgTWF0cml4Q2xpZW50UGVnIH0gZnJvbSBcIi4uLy4uL01hdHJpeENsaWVudFBlZ1wiO1xuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi8uLi9Nb2RhbFwiO1xuXG5jb25zdCBzaG93U3RvcEJyb2FkY2FzdGluZ0RpYWxvZyA9IGFzeW5jICgpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICBjb25zdCB7IGZpbmlzaGVkIH0gPSBNb2RhbC5jcmVhdGVEaWFsb2coUXVlc3Rpb25EaWFsb2csIHtcbiAgICAgICAgdGl0bGU6IF90KFwidm9pY2VfYnJvYWRjYXN0fGNvbmZpcm1fc3RvcF90aXRsZVwiKSxcbiAgICAgICAgZGVzY3JpcHRpb246IDxwPntfdChcInZvaWNlX2Jyb2FkY2FzdHxjb25maXJtX3N0b3BfZGVzY3JpcHRpb25cIil9PC9wPixcbiAgICAgICAgYnV0dG9uOiBfdChcInZvaWNlX2Jyb2FkY2FzdHxjb25maXJtX3N0b3BfYWZmaXJtXCIpLFxuICAgIH0pO1xuICAgIGNvbnN0IFtjb25maXJtZWRdID0gYXdhaXQgZmluaXNoZWQ7XG4gICAgcmV0dXJuICEhY29uZmlybWVkO1xufTtcblxuZXhwb3J0IGNvbnN0IHVzZVZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nID0gKFxuICAgIHJlY29yZGluZzogVm9pY2VCcm9hZGNhc3RSZWNvcmRpbmcsXG4pOiB7XG4gICAgbGl2ZTogYm9vbGVhbjtcbiAgICB0aW1lTGVmdDogbnVtYmVyO1xuICAgIHJlY29yZGluZ1N0YXRlOiBWb2ljZUJyb2FkY2FzdFJlY29yZGluZ1N0YXRlO1xuICAgIHJvb206IFJvb207XG4gICAgc2VuZGVyOiBSb29tTWVtYmVyIHwgbnVsbDtcbiAgICBzdG9wUmVjb3JkaW5nKCk6IHZvaWQ7XG4gICAgdG9nZ2xlUmVjb3JkaW5nKCk6IHZvaWQ7XG59ID0+IHtcbiAgICBjb25zdCBjbGllbnQgPSBNYXRyaXhDbGllbnRQZWcuc2FmZUdldCgpO1xuICAgIGNvbnN0IHJvb21JZCA9IHJlY29yZGluZy5pbmZvRXZlbnQuZ2V0Um9vbUlkKCk7XG4gICAgY29uc3Qgcm9vbSA9IGNsaWVudC5nZXRSb29tKHJvb21JZCk7XG5cbiAgICBpZiAoIXJvb20pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5hYmxlIHRvIGZpbmQgdm9pY2UgYnJvYWRjYXN0IHJvb20gd2l0aCBJZDogXCIgKyByb29tSWQpO1xuICAgIH1cblxuICAgIGNvbnN0IHNlbmRlciA9IHJlY29yZGluZy5pbmZvRXZlbnQuc2VuZGVyO1xuXG4gICAgaWYgKCFzZW5kZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBWb2ljZSBCcm9hZGNhc3Qgc2VuZGVyIG5vdCBmb3VuZCAoZXZlbnQgJHtyZWNvcmRpbmcuaW5mb0V2ZW50LmdldElkKCl9KWApO1xuICAgIH1cblxuICAgIGNvbnN0IHN0b3BSZWNvcmRpbmcgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1lZCA9IGF3YWl0IHNob3dTdG9wQnJvYWRjYXN0aW5nRGlhbG9nKCk7XG5cbiAgICAgICAgaWYgKGNvbmZpcm1lZCkge1xuICAgICAgICAgICAgYXdhaXQgcmVjb3JkaW5nLnN0b3AoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCByZWNvcmRpbmdTdGF0ZSA9IHVzZVR5cGVkRXZlbnRFbWl0dGVyU3RhdGUoXG4gICAgICAgIHJlY29yZGluZyxcbiAgICAgICAgVm9pY2VCcm9hZGNhc3RSZWNvcmRpbmdFdmVudC5TdGF0ZUNoYW5nZWQsXG4gICAgICAgIChzdGF0ZT86IFZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nU3RhdGUpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzdGF0ZSA/PyByZWNvcmRpbmcuZ2V0U3RhdGUoKTtcbiAgICAgICAgfSxcbiAgICApO1xuXG4gICAgY29uc3QgdGltZUxlZnQgPSB1c2VUeXBlZEV2ZW50RW1pdHRlclN0YXRlKFxuICAgICAgICByZWNvcmRpbmcsXG4gICAgICAgIFZvaWNlQnJvYWRjYXN0UmVjb3JkaW5nRXZlbnQuVGltZUxlZnRDaGFuZ2VkLFxuICAgICAgICAodD86IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHQgPz8gcmVjb3JkaW5nLmdldFRpbWVMZWZ0KCk7XG4gICAgICAgIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IGxpdmUgPSAoXG4gICAgICAgIFtWb2ljZUJyb2FkY2FzdEluZm9TdGF0ZS5TdGFydGVkLCBWb2ljZUJyb2FkY2FzdEluZm9TdGF0ZS5SZXN1bWVkXSBhcyBWb2ljZUJyb2FkY2FzdFJlY29yZGluZ1N0YXRlW11cbiAgICApLmluY2x1ZGVzKHJlY29yZGluZ1N0YXRlKTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGxpdmUsXG4gICAgICAgIHRpbWVMZWZ0LFxuICAgICAgICByZWNvcmRpbmdTdGF0ZSxcbiAgICAgICAgcm9vbSxcbiAgICAgICAgc2VuZGVyLFxuICAgICAgICBzdG9wUmVjb3JkaW5nLFxuICAgICAgICB0b2dnbGVSZWNvcmRpbmc6IHJlY29yZGluZy50b2dnbGUsXG4gICAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFTQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxDQUFBLEdBQUFELE9BQUE7QUFNQSxJQUFBRSxlQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxnQkFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksZ0JBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGdCQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFyQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBaUJBLE1BQU1PLDBCQUEwQixHQUFHLE1BQUFBLENBQUEsS0FBOEI7RUFDN0QsTUFBTTtJQUFFQztFQUFTLENBQUMsR0FBR0MsY0FBSyxDQUFDQyxZQUFZLENBQUNDLHVCQUFjLEVBQUU7SUFDcERDLEtBQUssRUFBRSxJQUFBQyxtQkFBRSxFQUFDLG9DQUFvQyxDQUFDO0lBQy9DQyxXQUFXLGVBQUVoQixNQUFBLENBQUFpQixPQUFBLENBQUFDLGFBQUEsWUFBSSxJQUFBSCxtQkFBRSxFQUFDLDBDQUEwQyxDQUFLLENBQUM7SUFDcEVJLE1BQU0sRUFBRSxJQUFBSixtQkFBRSxFQUFDLHFDQUFxQztFQUNwRCxDQUFDLENBQUM7RUFDRixNQUFNLENBQUNLLFNBQVMsQ0FBQyxHQUFHLE1BQU1WLFFBQVE7RUFDbEMsT0FBTyxDQUFDLENBQUNVLFNBQVM7QUFDdEIsQ0FBQztBQUVNLE1BQU1DLDBCQUEwQixHQUNuQ0MsU0FBa0MsSUFTakM7RUFDRCxNQUFNQyxNQUFNLEdBQUdDLGdDQUFlLENBQUNDLE9BQU8sQ0FBQyxDQUFDO0VBQ3hDLE1BQU1DLE1BQU0sR0FBR0osU0FBUyxDQUFDSyxTQUFTLENBQUNDLFNBQVMsQ0FBQyxDQUFDO0VBQzlDLE1BQU1DLElBQUksR0FBR04sTUFBTSxDQUFDTyxPQUFPLENBQUNKLE1BQU0sQ0FBQztFQUVuQyxJQUFJLENBQUNHLElBQUksRUFBRTtJQUNQLE1BQU0sSUFBSUUsS0FBSyxDQUFDLCtDQUErQyxHQUFHTCxNQUFNLENBQUM7RUFDN0U7RUFFQSxNQUFNTSxNQUFNLEdBQUdWLFNBQVMsQ0FBQ0ssU0FBUyxDQUFDSyxNQUFNO0VBRXpDLElBQUksQ0FBQ0EsTUFBTSxFQUFFO0lBQ1QsTUFBTSxJQUFJRCxLQUFLLENBQUMsMkNBQTJDVCxTQUFTLENBQUNLLFNBQVMsQ0FBQ00sS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO0VBQzlGO0VBRUEsTUFBTUMsYUFBYSxHQUFHLE1BQUFBLENBQUEsS0FBMkI7SUFDN0MsTUFBTWQsU0FBUyxHQUFHLE1BQU1YLDBCQUEwQixDQUFDLENBQUM7SUFFcEQsSUFBSVcsU0FBUyxFQUFFO01BQ1gsTUFBTUUsU0FBUyxDQUFDYSxJQUFJLENBQUMsQ0FBQztJQUMxQjtFQUNKLENBQUM7RUFFRCxNQUFNQyxjQUFjLEdBQUcsSUFBQUMsMENBQXlCLEVBQzVDZixTQUFTLEVBQ1RnQiw4QkFBNEIsQ0FBQ0MsWUFBWSxFQUN4Q0MsS0FBb0MsSUFBSztJQUN0QyxPQUFPQSxLQUFLLElBQUlsQixTQUFTLENBQUNtQixRQUFRLENBQUMsQ0FBQztFQUN4QyxDQUNKLENBQUM7RUFFRCxNQUFNQyxRQUFRLEdBQUcsSUFBQUwsMENBQXlCLEVBQ3RDZixTQUFTLEVBQ1RnQiw4QkFBNEIsQ0FBQ0ssZUFBZSxFQUMzQ0MsQ0FBVSxJQUFLO0lBQ1osT0FBT0EsQ0FBQyxJQUFJdEIsU0FBUyxDQUFDdUIsV0FBVyxDQUFDLENBQUM7RUFDdkMsQ0FDSixDQUFDO0VBRUQsTUFBTUMsSUFBSSxHQUNOLENBQUNDLHlCQUF1QixDQUFDQyxPQUFPLEVBQUVELHlCQUF1QixDQUFDRSxPQUFPLENBQUMsQ0FDcEVDLFFBQVEsQ0FBQ2QsY0FBYyxDQUFDO0VBRTFCLE9BQU87SUFDSFUsSUFBSTtJQUNKSixRQUFRO0lBQ1JOLGNBQWM7SUFDZFAsSUFBSTtJQUNKRyxNQUFNO0lBQ05FLGFBQWE7SUFDYmlCLGVBQWUsRUFBRTdCLFNBQVMsQ0FBQzhCO0VBQy9CLENBQUM7QUFDTCxDQUFDO0FBQUNDLE9BQUEsQ0FBQWhDLDBCQUFBLEdBQUFBLDBCQUFBIiwiaWdub3JlTGlzdCI6W119