UNPKG

podchat-browser

Version:

Javascript SDK to use POD's Chat Service - Browser Only

176 lines (146 loc) 5.07 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _callUser = require("./callUser"); function CallUsers(_ref) { var app = _ref.app, callId = _ref.callId; var config = { list: {}, callId: callId }; function getHTMLElements() { return Object.values(config.list).map(function (item) { return item.getHTMLElements(); }); } function getUser(userId) { return config.list[userId]; } var publicized = { addItem: function addItem(memberObject) { var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "user"; if (type == 'user') config.list[memberObject.userId] = new _callUser.CallUser(app, memberObject);else if (type == 'screenShare') { config.list[memberObject.userId] = new _callUser.CallScreenShare(app, memberObject); } }, removeItem: function removeItem(userId) { return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() { return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!config.list[userId]) { _context.next = 4; break; } _context.next = 3; return config.list[userId].destroy(); case 3: delete config.list[userId]; case 4: case "end": return _context.stop(); } } }, _callee); }))(); }, get: getUser, getAll: function getAll() { return config.list; }, userExists: function userExists(userId) { return !!config.list[userId]; }, getHTMLElements: getHTMLElements, generateCallUIList: function generateCallUIList() { var me = app.store.user.get().id, callUIElements = {}; if (!app.callsManager.get(config.callId)) return; for (var i in config.list) { var tags = {}; var HTMLElements = config.list[i].getHTMLElements(); if (config.list[i] && HTMLElements) { tags.container = HTMLElements.container; if (i === 'screenShare' && app.call.currentCall().screenShareInfo.isStarted() || i != 'screenShare' && config.list[i].user().video && HTMLElements[config.list[i].user().videoTopicName]) { tags.video = HTMLElements[config.list[i].user().videoTopicName]; tags.videoStream = config.list[i].getVideoStream(); } callUIElements[i] = tags; } } return { uiElements: callUIElements }; }, generateCallStreamsList: function generateCallStreamsList() { var me = app.store.user.get().id, callUIElements = {}; if (!app.call.currentCall()) return; for (var i in config.list) { var tags = {}; if (config.list[i]) { if (i === 'screenShare' && app.call.currentCall().screenShareInfo.isStarted() || i != 'screenShare' && config.list[i].user().video) { tags.video = config.list[i].getVideoStream(); } callUIElements[i] = tags; } } return { streams: callUIElements }; }, findUserIdByTopic: function findUserIdByTopic(topic) { for (var i in config.list) { if (config.list[i] && (config.list[i].user().videoTopicName === topic || config.list[i].user().audioTopicName === topic)) { return i; } } }, destroy: function destroy() { return new Promise(function (resolve) { var promises = []; for (var i in config.list) { var user = config.list[i]; if (user) { promises.push(user.destroy()); } // delete config.list[i]; } Promise.all(promises).then(function () { for (var _i in config.list) { delete config.list[_i]; } resolve(); }); }); }, switchSpeakers: function switchSpeakers(deviceId, callback) { var audioFound = false; for (var i in config.list) { var user = config.list[i]; if (user && !user.isMe()) { if (!user.isScreenShare() && user.audioTopicManager()) { audioFound = true; user === null || user === void 0 ? void 0 : user.switchSpeaker(deviceId); } } } if (!audioFound) { throw new Error('[SDK] No active audio receiver found.'); } else { callback && callback({ hasError: false }); } } }; return publicized; } var _default = CallUsers; exports["default"] = _default;