@videosdk.live/react-sdk
Version:
<h1 align="center"> <img src="https://static.videosdk.live/videosdk_logo_website_black.png"/><br/> <p align="center"> Video SDK React App<br/> <a href="https://videosdk.live/">videosdk.live</a> </p> </h1>
926 lines (920 loc) • 124 kB
JavaScript
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var React = require('react');
var React__default = _interopDefault(React);
var EventEmitter = _interopDefault(require('events'));
var jsSdk = require('@videosdk.live/js-sdk');
function _arrayLikeToArray(r, a) {
(null == a || a > r.length) && (a = r.length);
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
return n;
}
function _createForOfIteratorHelperLoose(r, e) {
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
if (t) return (t = t.call(r)).next.bind(t);
if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
t && (r = t);
var o = 0;
return function () {
return o >= r.length ? {
done: !0
} : {
done: !1,
value: r[o++]
};
};
}
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _extends() {
return _extends = Object.assign ? Object.assign.bind() : function (n) {
for (var e = 1; e < arguments.length; e++) {
var t = arguments[e];
for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
}
return n;
}, _extends.apply(null, arguments);
}
function _objectWithoutPropertiesLoose(r, e) {
if (null == r) return {};
var t = {};
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
if (-1 !== e.indexOf(n)) continue;
t[n] = r[n];
}
return t;
}
function _unsupportedIterableToArray(r, a) {
if (r) {
if ("string" == typeof r) return _arrayLikeToArray(r, a);
var t = {}.toString.call(r).slice(8, -1);
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
}
}
var eventPrifix = 'videosdk-live-react-sdk';
var events = {
'participant-joined': eventPrifix + "-participant-joined",
'participant-left': eventPrifix + "-participant-left",
'speaker-changed': eventPrifix + "-speaker-changed",
'presenter-changed': eventPrifix + "-presenter-changed",
'main-participant-changed': eventPrifix + "-main-participant-changed",
'entry-requested': eventPrifix + "-entry-requested",
'entry-responded': eventPrifix + "-entry-responded",
'recording-started': eventPrifix + "-recording-started",
'recording-stopped': eventPrifix + "-recording-stopped",
data: eventPrifix + "-data",
'meeting-joined': eventPrifix + "-meeting-joined",
'meeting-left': eventPrifix + "-meeting-left",
'live-stream-started': eventPrifix + "-live-stream-started",
'live-stream-stopped': eventPrifix + "-live-stream-stopped",
'video-state-changed': eventPrifix + "-video-state-changed",
'video-seeked': eventPrifix + "-video-seeked",
'webcam-requested': eventPrifix + "-webcam-requested",
'mic-requested': eventPrifix + "-mic-requested",
'pin-state-changed': eventPrifix + "-pin-state-changed",
'connection-open': eventPrifix + "-connection-open",
'connection-close': eventPrifix + "-connection-close",
'switch-meeting': eventPrifix + "-switch-meeting",
error: eventPrifix + "-error",
'hls-started': eventPrifix + "-hls-started",
'hls-stopped': eventPrifix + "-hls-stopped",
'hls-state-changed': eventPrifix + "-hls-state-changed",
'hls-playable-state-changed': eventPrifix + "-hls-playable-state-changed",
'recording-state-changed': eventPrifix + "-recording-state-changed",
'livestream-state-changed': eventPrifix + "-livestream-state-changed",
'meeting-state-changed': eventPrifix + "-meeting-state-changed",
'participant-mode-changed': eventPrifix + "-participant-mode-changed",
'transcription-state-changed': eventPrifix + "-transcription-state-changed",
'transcription-text': eventPrifix + "-transcription-text",
'translation-state-changed': eventPrifix + "-translation-state-changed",
'translation-language-changed': eventPrifix + "-translation-language-changed",
'translation-text': eventPrifix + "-translation-text",
'character-joined': eventPrifix + "-character-joined",
'character-left': eventPrifix + "-character-left",
'whiteboard-started': eventPrifix + "-whiteboard-started",
'whiteboard-stopped': eventPrifix + "-whiteboard-stopped",
'paused-all-streams': eventPrifix + "-paused-all-streams",
'resumed-all-streams': eventPrifix + "-resumed-all-streams",
'media-relay-started': eventPrifix + "-media-relay-started",
'media-relay-stopped': eventPrifix + "-media-relay-stopped",
'media-relay-error': eventPrifix + "-media-relay-error",
'media-relay-request-response': eventPrifix + "-media-relay-request-response",
'media-relay-request-received': eventPrifix + "-media-relay-request-received",
'quality-limitation': eventPrifix + "-quality-limitation"
};
var eventEmitter = new EventEmitter();
eventEmitter.setMaxListeners(9999);
function debounce(func, delay) {
var timeout;
return function () {
var _this = this;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
clearTimeout(timeout);
timeout = setTimeout(function () {
return func.apply(_this, args);
}, delay);
};
}
var MeetingProviderContex = React.createContext();
var useMeeting = function useMeeting(_temp) {
var _ref = _temp === void 0 ? {} : _temp,
_ref$onParticipantJoi = _ref.onParticipantJoined,
onParticipantJoined = _ref$onParticipantJoi === void 0 ? function () {} : _ref$onParticipantJoi,
_ref$onParticipantLef = _ref.onParticipantLeft,
onParticipantLeft = _ref$onParticipantLef === void 0 ? function () {} : _ref$onParticipantLef,
_ref$onSpeakerChanged = _ref.onSpeakerChanged,
onSpeakerChanged = _ref$onSpeakerChanged === void 0 ? function () {} : _ref$onSpeakerChanged,
_ref$onPresenterChang = _ref.onPresenterChanged,
onPresenterChanged = _ref$onPresenterChang === void 0 ? function () {} : _ref$onPresenterChang,
_ref$onMainParticipan = _ref.onMainParticipantChanged,
onMainParticipantChanged = _ref$onMainParticipan === void 0 ? function () {} : _ref$onMainParticipan,
_ref$onEntryRequested = _ref.onEntryRequested,
onEntryRequested = _ref$onEntryRequested === void 0 ? function () {} : _ref$onEntryRequested,
_ref$onEntryResponded = _ref.onEntryResponded,
onEntryResponded = _ref$onEntryResponded === void 0 ? function () {} : _ref$onEntryResponded,
_ref$onPausedAllStrea = _ref.onPausedAllStreams,
onPausedAllStreams = _ref$onPausedAllStrea === void 0 ? function () {} : _ref$onPausedAllStrea,
_ref$onResumedAllStre = _ref.onResumedAllStreams,
onResumedAllStreams = _ref$onResumedAllStre === void 0 ? function () {} : _ref$onResumedAllStre,
_ref$onRecordingStart = _ref.onRecordingStarted,
onRecordingStarted = _ref$onRecordingStart === void 0 ? function () {} : _ref$onRecordingStart,
_ref$onRecordingStopp = _ref.onRecordingStopped,
onRecordingStopped = _ref$onRecordingStopp === void 0 ? function () {} : _ref$onRecordingStopp,
_ref$onData = _ref.onData,
onData = _ref$onData === void 0 ? function () {} : _ref$onData,
_ref$onMeetingJoined = _ref.onMeetingJoined,
onMeetingJoined = _ref$onMeetingJoined === void 0 ? function () {} : _ref$onMeetingJoined,
_ref$onMeetingLeft = _ref.onMeetingLeft,
onMeetingLeft = _ref$onMeetingLeft === void 0 ? function () {} : _ref$onMeetingLeft,
_ref$onLiveStreamStar = _ref.onLiveStreamStarted,
onLiveStreamStarted = _ref$onLiveStreamStar === void 0 ? function () {} : _ref$onLiveStreamStar,
_ref$onLiveStreamStop = _ref.onLiveStreamStopped,
onLiveStreamStopped = _ref$onLiveStreamStop === void 0 ? function () {} : _ref$onLiveStreamStop,
_ref$onVideoStateChan = _ref.onVideoStateChanged,
onVideoStateChanged = _ref$onVideoStateChan === void 0 ? function () {} : _ref$onVideoStateChan,
_ref$onVideoSeeked = _ref.onVideoSeeked,
onVideoSeeked = _ref$onVideoSeeked === void 0 ? function () {} : _ref$onVideoSeeked,
_ref$onWebcamRequeste = _ref.onWebcamRequested,
onWebcamRequested = _ref$onWebcamRequeste === void 0 ? function () {} : _ref$onWebcamRequeste,
_ref$onMicRequested = _ref.onMicRequested,
onMicRequested = _ref$onMicRequested === void 0 ? function () {} : _ref$onMicRequested,
_ref$onPinStateChange = _ref.onPinStateChanged,
onPinStateChanged = _ref$onPinStateChange === void 0 ? function () {} : _ref$onPinStateChange,
_ref$onConnectionOpen = _ref.onConnectionOpen,
onConnectionOpen = _ref$onConnectionOpen === void 0 ? function () {} : _ref$onConnectionOpen,
_ref$onConnetionClose = _ref.onConnetionClose,
onConnetionClose = _ref$onConnetionClose === void 0 ? function () {} : _ref$onConnetionClose,
_ref$onSwitchMeeting = _ref.onSwitchMeeting,
onSwitchMeeting = _ref$onSwitchMeeting === void 0 ? function () {} : _ref$onSwitchMeeting,
_ref$onError = _ref.onError,
onError = _ref$onError === void 0 ? function () {} : _ref$onError,
_ref$onHlsStarted = _ref.onHlsStarted,
onHlsStarted = _ref$onHlsStarted === void 0 ? function () {} : _ref$onHlsStarted,
_ref$onHlsStopped = _ref.onHlsStopped,
onHlsStopped = _ref$onHlsStopped === void 0 ? function () {} : _ref$onHlsStopped,
_ref$onHlsStateChange = _ref.onHlsStateChanged,
onHlsStateChanged = _ref$onHlsStateChange === void 0 ? function () {} : _ref$onHlsStateChange,
_ref$onRecordingState = _ref.onRecordingStateChanged,
onRecordingStateChanged = _ref$onRecordingState === void 0 ? function () {} : _ref$onRecordingState,
_ref$onLivestreamStat = _ref.onLivestreamStateChanged,
onLivestreamStateChanged = _ref$onLivestreamStat === void 0 ? function () {} : _ref$onLivestreamStat,
_ref$onMeetingStateCh = _ref.onMeetingStateChanged,
onMeetingStateChanged = _ref$onMeetingStateCh === void 0 ? function () {} : _ref$onMeetingStateCh,
_ref$onParticipantMod = _ref.onParticipantModeChanged,
onParticipantModeChanged = _ref$onParticipantMod === void 0 ? function () {} : _ref$onParticipantMod,
_ref$onCharacterJoine = _ref.onCharacterJoined,
onCharacterJoined = _ref$onCharacterJoine === void 0 ? function () {} : _ref$onCharacterJoine,
_ref$onCharacterLeft = _ref.onCharacterLeft,
onCharacterLeft = _ref$onCharacterLeft === void 0 ? function () {} : _ref$onCharacterLeft,
_ref$onMediaRelayStar = _ref.onMediaRelayStarted,
onMediaRelayStarted = _ref$onMediaRelayStar === void 0 ? function () {} : _ref$onMediaRelayStar,
_ref$onMediaRelayStop = _ref.onMediaRelayStopped,
onMediaRelayStopped = _ref$onMediaRelayStop === void 0 ? function () {} : _ref$onMediaRelayStop,
_ref$onMediaRelayErro = _ref.onMediaRelayError,
onMediaRelayError = _ref$onMediaRelayErro === void 0 ? function () {} : _ref$onMediaRelayErro,
_ref$onMediaRelayRequ = _ref.onMediaRelayRequestResponse,
onMediaRelayRequestResponse = _ref$onMediaRelayRequ === void 0 ? function () {} : _ref$onMediaRelayRequ,
_ref$onMediaRelayRequ2 = _ref.onMediaRelayRequestReceived,
onMediaRelayRequestReceived = _ref$onMediaRelayRequ2 === void 0 ? function () {} : _ref$onMediaRelayRequ2,
_ref$onQualityLimitat = _ref.onQualityLimitation,
onQualityLimitation = _ref$onQualityLimitat === void 0 ? function () {} : _ref$onQualityLimitat;
React.useEffect(function () {
eventEmitter.on(events['participant-joined'], onParticipantJoined);
eventEmitter.on(events['participant-left'], onParticipantLeft);
eventEmitter.on(events['speaker-changed'], onSpeakerChanged);
eventEmitter.on(events['presenter-changed'], onPresenterChanged);
eventEmitter.on(events['main-participant-changed'], onMainParticipantChanged);
eventEmitter.on(events['entry-requested'], onEntryRequested);
eventEmitter.on(events['entry-responded'], onEntryResponded);
eventEmitter.on(events['paused-all-streams'], onPausedAllStreams);
eventEmitter.on(events['resumed-all-streams'], onResumedAllStreams);
eventEmitter.on(events['recording-started'], onRecordingStarted);
eventEmitter.on(events['recording-stopped'], onRecordingStopped);
eventEmitter.on(events['data'], onData);
eventEmitter.on(events['meeting-joined'], onMeetingJoined);
eventEmitter.on(events['meeting-left'], onMeetingLeft);
eventEmitter.on(events['live-stream-started'], onLiveStreamStarted);
eventEmitter.on(events['live-stream-stopped'], onLiveStreamStopped);
eventEmitter.on(events['video-state-changed'], onVideoStateChanged);
eventEmitter.on(events['video-seeked'], onVideoSeeked);
eventEmitter.on(events['webcam-requested'], onWebcamRequested);
eventEmitter.on(events['mic-requested'], onMicRequested);
eventEmitter.on(events['pin-state-changed'], onPinStateChanged);
eventEmitter.on(events['connection-open'], onConnectionOpen);
eventEmitter.on(events['connection-close'], onConnetionClose);
eventEmitter.on(events['switch-meeting'], onSwitchMeeting);
eventEmitter.on(events['error'], onError);
eventEmitter.on(events['hls-started'], onHlsStarted);
eventEmitter.on(events['hls-stopped'], onHlsStopped);
eventEmitter.on(events['hls-state-changed'], onHlsStateChanged);
eventEmitter.on(events['recording-state-changed'], onRecordingStateChanged);
eventEmitter.on(events['livestream-state-changed'], onLivestreamStateChanged);
eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);
eventEmitter.on(events['participant-mode-changed'], onParticipantModeChanged);
eventEmitter.on(events['character-joined'], onCharacterJoined);
eventEmitter.on(events['character-left'], onCharacterLeft);
eventEmitter.on(events['media-relay-started'], onMediaRelayStarted);
eventEmitter.on(events['media-relay-stopped'], onMediaRelayStopped);
eventEmitter.on(events['media-relay-error'], onMediaRelayError);
eventEmitter.on(events['media-relay-request-response'], onMediaRelayRequestResponse);
eventEmitter.on(events['media-relay-request-received'], onMediaRelayRequestReceived);
eventEmitter.on(events['quality-limitation'], onQualityLimitation);
return function () {
eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);
eventEmitter.off(events['participant-joined'], onParticipantJoined);
eventEmitter.off(events['participant-left'], onParticipantLeft);
eventEmitter.off(events['speaker-changed'], onSpeakerChanged);
eventEmitter.off(events['presenter-changed'], onPresenterChanged);
eventEmitter.off(events['main-participant-changed'], onMainParticipantChanged);
eventEmitter.off(events['entry-requested'], onEntryRequested);
eventEmitter.off(events['entry-responded'], onEntryResponded);
eventEmitter.off(events['paused-all-streams'], onPausedAllStreams);
eventEmitter.off(events['resumed-all-streams'], onResumedAllStreams);
eventEmitter.off(events['recording-started'], onRecordingStarted);
eventEmitter.off(events['recording-stopped'], onRecordingStopped);
eventEmitter.off(events['data'], onData);
eventEmitter.off(events['meeting-joined'], onMeetingJoined);
eventEmitter.off(events['meeting-left'], onMeetingLeft);
eventEmitter.off(events['live-stream-started'], onLiveStreamStarted);
eventEmitter.off(events['live-stream-stopped'], onLiveStreamStopped);
eventEmitter.off(events['video-state-changed'], onVideoStateChanged);
eventEmitter.off(events['video-seeked'], onVideoSeeked);
eventEmitter.off(events['webcam-requested'], onWebcamRequested);
eventEmitter.off(events['mic-requested'], onMicRequested);
eventEmitter.off(events['pin-state-changed'], onPinStateChanged);
eventEmitter.off(events['connection-open'], onConnectionOpen);
eventEmitter.off(events['connection-close'], onConnetionClose);
eventEmitter.off(events['switch-meeting'], onSwitchMeeting);
eventEmitter.off(events['error'], onError);
eventEmitter.off(events['hls-started'], onHlsStarted);
eventEmitter.off(events['hls-stopped'], onHlsStopped);
eventEmitter.off(events['hls-state-changed'], onHlsStateChanged);
eventEmitter.off(events['recording-state-changed'], onRecordingStateChanged);
eventEmitter.off(events['livestream-state-changed'], onLivestreamStateChanged);
eventEmitter.off(events['participant-mode-changed'], onParticipantModeChanged);
eventEmitter.off(events['character-joined'], onCharacterJoined);
eventEmitter.off(events['character-left'], onCharacterLeft);
eventEmitter.off(events['media-relay-started'], onMediaRelayStarted);
eventEmitter.off(events['media-relay-stopped'], onMediaRelayStopped);
eventEmitter.off(events['media-relay-error'], onMediaRelayError);
eventEmitter.off(events['media-relay-request-response'], onMediaRelayRequestResponse);
eventEmitter.off(events['media-relay-request-received'], onMediaRelayRequestReceived);
eventEmitter.off(events['quality-limitation'], onQualityLimitation);
};
}, []);
return React.useContext(MeetingProviderContex);
};
var MeetingConsumer = function MeetingConsumer(_ref2) {
var children = _ref2.children,
_ref2$onParticipantJo = _ref2.onParticipantJoined,
onParticipantJoined = _ref2$onParticipantJo === void 0 ? function () {} : _ref2$onParticipantJo,
_ref2$onParticipantLe = _ref2.onParticipantLeft,
onParticipantLeft = _ref2$onParticipantLe === void 0 ? function () {} : _ref2$onParticipantLe,
_ref2$onSpeakerChange = _ref2.onSpeakerChanged,
onSpeakerChanged = _ref2$onSpeakerChange === void 0 ? function () {} : _ref2$onSpeakerChange,
_ref2$onPresenterChan = _ref2.onPresenterChanged,
onPresenterChanged = _ref2$onPresenterChan === void 0 ? function () {} : _ref2$onPresenterChan,
_ref2$onMainParticipa = _ref2.onMainParticipantChanged,
onMainParticipantChanged = _ref2$onMainParticipa === void 0 ? function () {} : _ref2$onMainParticipa,
_ref2$onEntryRequeste = _ref2.onEntryRequested,
onEntryRequested = _ref2$onEntryRequeste === void 0 ? function () {} : _ref2$onEntryRequeste,
_ref2$onEntryResponde = _ref2.onEntryResponded,
onEntryResponded = _ref2$onEntryResponde === void 0 ? function () {} : _ref2$onEntryResponde,
_ref2$onPausedAllStre = _ref2.onPausedAllStreams,
onPausedAllStreams = _ref2$onPausedAllStre === void 0 ? function () {} : _ref2$onPausedAllStre,
_ref2$onResumedAllStr = _ref2.onResumedAllStreams,
onResumedAllStreams = _ref2$onResumedAllStr === void 0 ? function () {} : _ref2$onResumedAllStr,
_ref2$onRecordingStar = _ref2.onRecordingStarted,
onRecordingStarted = _ref2$onRecordingStar === void 0 ? function () {} : _ref2$onRecordingStar,
_ref2$onRecordingStop = _ref2.onRecordingStopped,
onRecordingStopped = _ref2$onRecordingStop === void 0 ? function () {} : _ref2$onRecordingStop,
_ref2$onData = _ref2.onData,
onData = _ref2$onData === void 0 ? function () {} : _ref2$onData,
_ref2$onMeetingJoined = _ref2.onMeetingJoined,
onMeetingJoined = _ref2$onMeetingJoined === void 0 ? function () {} : _ref2$onMeetingJoined,
_ref2$onMeetingLeft = _ref2.onMeetingLeft,
onMeetingLeft = _ref2$onMeetingLeft === void 0 ? function () {} : _ref2$onMeetingLeft,
_ref2$onLiveStreamSta = _ref2.onLiveStreamStarted,
onLiveStreamStarted = _ref2$onLiveStreamSta === void 0 ? function () {} : _ref2$onLiveStreamSta,
_ref2$onLiveStreamSto = _ref2.onLiveStreamStopped,
onLiveStreamStopped = _ref2$onLiveStreamSto === void 0 ? function () {} : _ref2$onLiveStreamSto,
_ref2$onVideoStateCha = _ref2.onVideoStateChanged,
onVideoStateChanged = _ref2$onVideoStateCha === void 0 ? function () {} : _ref2$onVideoStateCha,
_ref2$onVideoSeeked = _ref2.onVideoSeeked,
onVideoSeeked = _ref2$onVideoSeeked === void 0 ? function () {} : _ref2$onVideoSeeked,
_ref2$onWebcamRequest = _ref2.onWebcamRequested,
onWebcamRequested = _ref2$onWebcamRequest === void 0 ? function () {} : _ref2$onWebcamRequest,
_ref2$onMicRequested = _ref2.onMicRequested,
onMicRequested = _ref2$onMicRequested === void 0 ? function () {} : _ref2$onMicRequested,
_ref2$onPinStateChang = _ref2.onPinStateChanged,
onPinStateChanged = _ref2$onPinStateChang === void 0 ? function () {} : _ref2$onPinStateChang,
_ref2$onConnectionOpe = _ref2.onConnectionOpen,
onConnectionOpen = _ref2$onConnectionOpe === void 0 ? function () {} : _ref2$onConnectionOpe,
_ref2$onConnetionClos = _ref2.onConnetionClose,
onConnetionClose = _ref2$onConnetionClos === void 0 ? function () {} : _ref2$onConnetionClos,
_ref2$onSwitchMeeting = _ref2.onSwitchMeeting,
onSwitchMeeting = _ref2$onSwitchMeeting === void 0 ? function () {} : _ref2$onSwitchMeeting,
_ref2$onError = _ref2.onError,
onError = _ref2$onError === void 0 ? function () {} : _ref2$onError,
_ref2$onHlsStarted = _ref2.onHlsStarted,
onHlsStarted = _ref2$onHlsStarted === void 0 ? function () {} : _ref2$onHlsStarted,
_ref2$onHlsStopped = _ref2.onHlsStopped,
onHlsStopped = _ref2$onHlsStopped === void 0 ? function () {} : _ref2$onHlsStopped,
_ref2$onHlsStateChang = _ref2.onHlsStateChanged,
onHlsStateChanged = _ref2$onHlsStateChang === void 0 ? function () {} : _ref2$onHlsStateChang,
_ref2$onRecordingStat = _ref2.onRecordingStateChanged,
onRecordingStateChanged = _ref2$onRecordingStat === void 0 ? function () {} : _ref2$onRecordingStat,
_ref2$onLivestreamSta = _ref2.onLivestreamStateChanged,
onLivestreamStateChanged = _ref2$onLivestreamSta === void 0 ? function () {} : _ref2$onLivestreamSta,
_ref2$onMeetingStateC = _ref2.onMeetingStateChanged,
onMeetingStateChanged = _ref2$onMeetingStateC === void 0 ? function () {} : _ref2$onMeetingStateC,
_ref2$onParticipantMo = _ref2.onParticipantModeChanged,
onParticipantModeChanged = _ref2$onParticipantMo === void 0 ? function () {} : _ref2$onParticipantMo,
_ref2$onCharacterJoin = _ref2.onCharacterJoined,
onCharacterJoined = _ref2$onCharacterJoin === void 0 ? function () {} : _ref2$onCharacterJoin,
_ref2$onCharacterLeft = _ref2.onCharacterLeft,
onCharacterLeft = _ref2$onCharacterLeft === void 0 ? function () {} : _ref2$onCharacterLeft,
_ref2$onMediaRelaySta = _ref2.onMediaRelayStarted,
onMediaRelayStarted = _ref2$onMediaRelaySta === void 0 ? function () {} : _ref2$onMediaRelaySta,
_ref2$onMediaRelaySto = _ref2.onMediaRelayStopped,
onMediaRelayStopped = _ref2$onMediaRelaySto === void 0 ? function () {} : _ref2$onMediaRelaySto,
_ref2$onMediaRelayErr = _ref2.onMediaRelayError,
onMediaRelayError = _ref2$onMediaRelayErr === void 0 ? function () {} : _ref2$onMediaRelayErr,
_ref2$onMediaRelayReq = _ref2.onMediaRelayRequestResponse,
onMediaRelayRequestResponse = _ref2$onMediaRelayReq === void 0 ? function () {} : _ref2$onMediaRelayReq,
_ref2$onMediaRelayReq2 = _ref2.onMediaRelayRequestReceived,
onMediaRelayRequestReceived = _ref2$onMediaRelayReq2 === void 0 ? function () {} : _ref2$onMediaRelayReq2,
_ref2$onQualityLimita = _ref2.onQualityLimitation,
onQualityLimitation = _ref2$onQualityLimita === void 0 ? function () {} : _ref2$onQualityLimita;
React.useEffect(function () {
eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);
eventEmitter.on(events['participant-joined'], onParticipantJoined);
eventEmitter.on(events['participant-left'], onParticipantLeft);
eventEmitter.on(events['speaker-changed'], onSpeakerChanged);
eventEmitter.on(events['presenter-changed'], onPresenterChanged);
eventEmitter.on(events['main-participant-changed'], onMainParticipantChanged);
eventEmitter.on(events['entry-requested'], onEntryRequested);
eventEmitter.on(events['entry-responded'], onEntryResponded);
eventEmitter.on(events['paused-all-streams'], onPausedAllStreams);
eventEmitter.on(events['resumed-all-streams'], onResumedAllStreams);
eventEmitter.on(events['recording-started'], onRecordingStarted);
eventEmitter.on(events['recording-stopped'], onRecordingStopped);
eventEmitter.on(events['data'], onData);
eventEmitter.on(events['meeting-joined'], onMeetingJoined);
eventEmitter.on(events['meeting-left'], onMeetingLeft);
eventEmitter.on(events['live-stream-enabled'], onLiveStreamStarted);
eventEmitter.on(events['live-stream-disabled'], onLiveStreamStopped);
eventEmitter.on(events['video-state-changed'], onVideoStateChanged);
eventEmitter.on(events['video-seeked'], onVideoSeeked);
eventEmitter.on(events['webcam-requested'], onWebcamRequested);
eventEmitter.on(events['mic-requested'], onMicRequested);
eventEmitter.on(events['pin-state-changed'], onPinStateChanged);
eventEmitter.on(events['connection-open'], onConnectionOpen);
eventEmitter.on(events['connection-close'], onConnetionClose);
eventEmitter.on(events['switch-meeting'], onSwitchMeeting);
eventEmitter.on(events['error'], onError);
eventEmitter.on(events['hls-started'], onHlsStarted);
eventEmitter.on(events['hls-stopped'], onHlsStopped);
eventEmitter.on(events['hls-state-changed'], onHlsStateChanged);
eventEmitter.on(events['recording-state-changed'], onRecordingStateChanged);
eventEmitter.on(events['livestream-state-changed'], onLivestreamStateChanged);
eventEmitter.on(events['participant-mode-changed'], onParticipantModeChanged);
eventEmitter.on(events['character-joined'], onCharacterJoined);
eventEmitter.on(events['character-left'], onCharacterLeft);
eventEmitter.on(events['media-relay-started'], onMediaRelayStarted);
eventEmitter.on(events['media-relay-stopped'], onMediaRelayStopped);
eventEmitter.on(events['media-relay-error'], onMediaRelayError);
eventEmitter.on(events['media-relay-request-response'], onMediaRelayRequestResponse);
eventEmitter.on(events['media-relay-request-received'], onMediaRelayRequestReceived);
eventEmitter.on(events['quality-limitation'], onQualityLimitation);
return function () {
eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);
eventEmitter.off(events['participant-joined'], onParticipantJoined);
eventEmitter.off(events['participant-left'], onParticipantLeft);
eventEmitter.off(events['speaker-changed'], onSpeakerChanged);
eventEmitter.off(events['presenter-changed'], onPresenterChanged);
eventEmitter.off(events['main-participant-changed'], onMainParticipantChanged);
eventEmitter.off(events['entry-requested'], onEntryRequested);
eventEmitter.off(events['entry-responded'], onEntryResponded);
eventEmitter.off(events['paused-all-streams'], onPausedAllStreams);
eventEmitter.off(events['resumed-all-streams'], onResumedAllStreams);
eventEmitter.off(events['recording-started'], onRecordingStarted);
eventEmitter.off(events['recording-stopped'], onRecordingStopped);
eventEmitter.off(events['data'], onData);
eventEmitter.off(events['meeting-joined'], onMeetingJoined);
eventEmitter.off(events['meeting-left'], onMeetingLeft);
eventEmitter.off(events['live-stream-enabled'], onLiveStreamStarted);
eventEmitter.off(events['live-stream-disabled'], onLiveStreamStopped);
eventEmitter.off(events['video-state-changed'], onVideoStateChanged);
eventEmitter.off(events['video-seeked'], onVideoSeeked);
eventEmitter.off(events['webcam-requested'], onWebcamRequested);
eventEmitter.off(events['mic-requested'], onMicRequested);
eventEmitter.off(events['pin-state-changed'], onPinStateChanged);
eventEmitter.off(events['connection-open'], onConnectionOpen);
eventEmitter.off(events['connection-close'], onConnetionClose);
eventEmitter.off(events['switch-meeting'], onSwitchMeeting);
eventEmitter.off(events['error'], onError);
eventEmitter.off(events['hls-started'], onHlsStarted);
eventEmitter.off(events['hls-stopped'], onHlsStopped);
eventEmitter.off(events['hls-state-changed'], onHlsStateChanged);
eventEmitter.off(events['recording-state-changed'], onRecordingStateChanged);
eventEmitter.off(events['livestream-state-changed'], onLivestreamStateChanged);
eventEmitter.off(events['participant-mode-changed'], onParticipantModeChanged);
eventEmitter.off(events['character-joined'], onCharacterJoined);
eventEmitter.off(events['character-left'], onCharacterLeft);
eventEmitter.off(events['media-relay-started'], onMediaRelayStarted);
eventEmitter.off(events['media-relay-stopped'], onMediaRelayStopped);
eventEmitter.off(events['media-relay-error'], onMediaRelayError);
eventEmitter.off(events['media-relay-request-response'], onMediaRelayRequestResponse);
eventEmitter.off(events['media-relay-request-received'], onMediaRelayRequestReceived);
eventEmitter.off(events['quality-limitation'], onQualityLimitation);
};
}, []);
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(MeetingProviderContex.Consumer, null, children));
};
var version = "0.6.6";
var MeetingProvider = function MeetingProvider(_ref) {
var children = _ref.children,
config = _ref.config,
token = _ref.token,
joinWithoutUserInteraction = _ref.joinWithoutUserInteraction,
_reinitialiseMeetingOnConfigChange = _ref.reinitialiseMeetingOnConfigChange,
deviceInfo = _ref.deviceInfo,
keyProvider = _ref.keyProvider;
var _useState = React.useState(null),
meeting = _useState[0],
setMeeting = _useState[1];
var _useState2 = React.useState(null),
localParticipant = _useState2[0],
setLocalParticipant = _useState2[1];
var _useState3 = React.useState(null),
mainParticipant = _useState3[0],
setMainParticipant = _useState3[1];
var _useState4 = React.useState(null),
activeSpeakerId = _useState4[0],
setActiveSpeakerId = _useState4[1];
var _useState5 = React.useState(null),
presenterId = _useState5[0],
setPresenterId = _useState5[1];
var _useState6 = React.useState(false),
localMicOn = _useState6[0],
setLocalMicOn = _useState6[1];
var _useState7 = React.useState(false),
localWebcamOn = _useState7[0],
setLocalWebcamOn = _useState7[1];
var _useState8 = React.useState(false),
localScreenShareOn = _useState8[0],
setLocalScreenShareOn = _useState8[1];
var _useState9 = React.useState(false),
isRecording = _useState9[0],
setIsRecording = _useState9[1];
var _useState0 = React.useState([]),
messages = _useState0[0],
setMessages = _useState0[1];
var _useState1 = React.useState(new Map()),
participants = _useState1[0],
setParticipants = _useState1[1];
var _useState10 = React.useState(new Map()),
characters = _useState10[0],
setCharacters = _useState10[1];
var _useState11 = React.useState(new Map()),
pinnedParticipants = _useState11[0],
setPinnedParticipants = _useState11[1];
var _useState12 = React.useState(false),
isLiveStreaming = _useState12[0],
setIsLiveStreaming = _useState12[1];
var _useState13 = React.useState(new Map()),
connections = _useState13[0],
setConnections = _useState13[1];
var _useState14 = React.useState(false),
isMeetingJoined = _useState14[0],
setIsMeetingJoined = _useState14[1];
var _useState15 = React.useState(false),
isHls = _useState15[0],
setIsHls = _useState15[1];
var _useState16 = React.useState('RECORDING_STOPPED'),
recordingState = _useState16[0],
setRecordingState = _useState16[1];
var _useState17 = React.useState('LIVESTREAM_STOPPED'),
livestreamState = _useState17[0],
setLivestreamState = _useState17[1];
var _useState18 = React.useState('HLS_STOPPED'),
hlsState = _useState18[0],
setHlsState = _useState18[1];
var _useState19 = React.useState({
downstreamUrl: null,
playbackHlsUrl: null,
livestreamUrl: null
}),
hlsUrls = _useState19[0],
setHlsUrls = _useState19[1];
var _useState20 = React.useState('TRANSCRIPTION_STOPPED'),
transcriptionState = _useState20[0],
setTranscriptionState = _useState20[1];
var _useState21 = React.useState('TRANSLATION_STOPPED'),
translationState = _useState21[0],
setTranslationState = _useState21[1];
var meetingRef = React.useRef();
var localMicOnRef = React.useRef();
var localWebcamOnRef = React.useRef();
var localScreenShareOnRef = React.useRef();
var isRecordingRef = React.useRef();
var keyProviderRef = React.useRef(keyProvider);
var configRef = React.useRef(config);
var tokenRef = React.useRef(token);
var joinedOnFirstRender = React.useRef(false);
var isHlsRef = React.useRef();
var reinitialiseMeetingOnConfigChange = React.useMemo(function () {
return _reinitialiseMeetingOnConfigChange;
}, []);
React.useEffect(function () {
meetingRef.current = meeting;
}, [meeting]);
React.useEffect(function () {
localMicOnRef.current = localMicOn;
}, [localMicOn]);
React.useEffect(function () {
localWebcamOnRef.current = localWebcamOn;
}, [localWebcamOn]);
React.useEffect(function () {
localScreenShareOnRef.current = localScreenShareOn;
}, [localScreenShareOn]);
React.useEffect(function () {
isRecordingRef.current = isRecording;
}, [isRecording]);
React.useEffect(function () {
configRef.current = config;
}, [config]);
React.useEffect(function () {
tokenRef.current = token;
}, [token]);
React.useEffect(function () {
isHlsRef.current = isHls;
}, [isHls]);
var resetStates = function resetStates() {
setMeeting(null);
setLocalParticipant(null);
setMainParticipant(null);
setActiveSpeakerId(null);
setPresenterId(null);
setLocalMicOn(false);
setLocalWebcamOn(false);
setLocalScreenShareOn(false);
setIsRecording(false);
setMessages([]);
setIsLiveStreaming(false);
setParticipants(new Map());
setCharacters(new Map());
setPinnedParticipants(new Map());
setConnections(new Map());
setIsMeetingJoined(false);
setIsHls(false);
setRecordingState('RECORDING_STOPPED');
setLivestreamState('LIVESTREAM_STOPPED');
setHlsState('HLS_STOPPED');
setTranscriptionState('TRANSCRIPTION_STOPPED');
setTranslationState('TRANSLATION_STOPPED');
setHlsUrls({
downstreamUrl: null,
playbackHlsUrl: null,
livestreamUrl: null
});
};
var _handle_participant_joined = function _handle_participant_joined(participant) {
setParticipants(function (participants) {
participants.set(participant.id, participant);
var participantsToSet = new Map(participants);
return participantsToSet;
});
eventEmitter.emit(events['participant-joined'], participant);
};
var _handle_participant_left = function _handle_participant_left(participant, reason) {
setParticipants(function (participants) {
participants["delete"](participant.id);
var newParticipants = new Map(participants);
return newParticipants;
});
eventEmitter.emit(events['participant-left'], participant, reason);
};
var _handle_presenter_changed = function _handle_presenter_changed(presenterId) {
var _meetingRef$current, _meetingRef$current$l;
setPresenterId(presenterId);
setLocalScreenShareOn(presenterId === (meetingRef === null || meetingRef === void 0 ? void 0 : (_meetingRef$current = meetingRef.current) === null || _meetingRef$current === void 0 ? void 0 : (_meetingRef$current$l = _meetingRef$current.localParticipant) === null || _meetingRef$current$l === void 0 ? void 0 : _meetingRef$current$l.id));
eventEmitter.emit(events['presenter-changed'], presenterId);
};
var _handle_main_participant_changed = function _handle_main_participant_changed(participant) {
setMainParticipant(participant);
eventEmitter.emit(events['main-participant-changed'], participant);
};
var _handle_speaker_changed = function _handle_speaker_changed(activeSpeakerId) {
setActiveSpeakerId(activeSpeakerId);
eventEmitter.emit(events['speaker-changed'], activeSpeakerId);
};
var _handle_chat_message = function _handle_chat_message(data) {
setMessages(function (s) {
return [].concat(s, [data]);
});
eventEmitter.emit(events['data'], data);
};
var _handle_entry_requested = function _handle_entry_requested(data) {
eventEmitter.emit(events['entry-requested'], data);
};
var _handle_entry_responded = function _handle_entry_responded(participantId, decision) {
eventEmitter.emit(events['entry-responded'], participantId, decision);
};
var _handle_recording_started = function _handle_recording_started() {
setIsRecording(true);
eventEmitter.emit(events['recording-started']);
};
var _handle_recording_stopped = function _handle_recording_stopped() {
setIsRecording(false);
eventEmitter.emit(events['recording-stopped']);
};
var _handle_localParticipant_stream_enabled = function _handle_localParticipant_stream_enabled(stream) {
if (stream.track.readyState === 'live') {
if (stream.kind === 'video') {
setLocalWebcamOn(true);
} else if (stream.kind === 'audio') {
setLocalMicOn(true);
}
}
};
var _handle_localParticipant_stream_disabled = function _handle_localParticipant_stream_disabled(stream) {
if (stream.kind === 'video') {
setLocalWebcamOn(false);
} else if (stream.kind === 'audio') {
setLocalMicOn(false);
}
};
var _handle_live_stream_started = function _handle_live_stream_started(data) {
setIsLiveStreaming(true);
eventEmitter.emit(events['live-stream-started'], data);
};
var _handle_live_stream_stopped = function _handle_live_stream_stopped() {
setIsLiveStreaming(false);
eventEmitter.emit(events['live-stream-stopped']);
};
var _handle_hls_started = function _handle_hls_started(data) {
setIsHls(true);
eventEmitter.emit(events['hls-started'], data);
};
var _handle_hls_stopped = function _handle_hls_stopped() {
setIsHls(false);
eventEmitter.emit(events['hls-stopped']);
};
var _handle_video_state_changed = function _handle_video_state_changed(data) {
eventEmitter.emit(events['video-state-changed'], data);
};
var _handle_video_seeked = function _handle_video_seeked(data) {
eventEmitter.emit(events['video-seeked'], data);
};
var _handle_webcam_requested = function _handle_webcam_requested(data) {
eventEmitter.emit(events['webcam-requested'], data);
};
var _handle_mic_requested = function _handle_mic_requested(data) {
eventEmitter.emit(events['mic-requested'], data);
};
var _handle_meeting_joined = function _handle_meeting_joined(data) {
if (data.switchRoomId) {
setMessages(function (s) {
return [].concat(s, data.messages);
});
eventEmitter.emit(events['meeting-joined'], data);
} else {
joinedOnFirstRender.current = true;
setMessages(function (s) {
return [].concat(s, data.messages);
});
eventEmitter.emit(events['meeting-joined'], data);
setIsMeetingJoined(true);
}
};
var _handle_meeting_left2 = function _handle_meeting_left(data) {
eventEmitter.emit(events['meeting-left'], data);
var meeting = meetingRef.current;
if (meeting) {
var _meeting$localPartici;
if (typeof (meeting === null || meeting === void 0 ? void 0 : meeting.off) === 'function') {
meeting.off('meeting-state-changed', _handle_meeting_state_changed);
meeting.off('socket-state-changed', _handle_socket_state_changed);
meeting.off('participant-joined', _handle_participant_joined);
meeting.off('participant-left', _handle_participant_left);
meeting.off('presenter-changed', _handle_presenter_changed);
meeting.off('main-participant-changed', _handle_main_participant_changed);
meeting.off('speaker-changed', _handle_speaker_changed);
meeting.off('entry-requested', _handle_entry_requested);
meeting.off('entry-responded', _handle_entry_responded);
meeting.off('data', _handle_chat_message);
meeting.off('recording-started', _handle_recording_started);
meeting.off('recording-stopped', _handle_recording_stopped);
meeting.off('meeting-joined', _handle_meeting_joined);
meeting.off('meeting-left', _handle_meeting_left2);
meeting.off('livestream-started', _handle_live_stream_started);
meeting.off('livestream-stopped', _handle_live_stream_stopped);
meeting.off('video-state-changed', _handle_video_state_changed);
meeting.off('video-seeked', _handle_video_seeked);
meeting.off('webcam-requested', _handle_webcam_requested);
meeting.off('mic-requested', _handle_mic_requested);
meeting.off('pin-state-changed', _handle_pin_state_changed);
meeting.off('paused-all-streams', _handle_streams_paused);
meeting.off('resumed-all-streams', _handle_streams_resumed);
meeting.off('connection-open', _handle_connection_open);
meeting.off('connection-close', _handle_connection_close);
meeting.off('switch-meeting', _handle_switch_meeting);
meeting.off('error', _handle_error);
meeting.off('hls-started', _handle_hls_started);
meeting.off('hls-stopped', _handle_hls_stopped);
meeting.off('recording-state-changed', _handle_recording_state_changed);
meeting.off('livestream-state-changed', _handle_livestream_state_changed);
meeting.off('hls-state-changed', _handle_hls_state_changed);
meeting.off('participant-mode-changed', _handel_participant_mode_changed);
meeting.off('whiteboard-stopped', _handle_whiteboard_stopped);
meeting.off('whiteboard-started', _handle_whiteboard_started);
meeting.off('transcription-state-changed', _handle_transcription_state_changed);
meeting.off('transcription-text', _handle_transcription_text);
meeting.off('translation-state-changed', _handle_translation_state_changed);
meeting.off('translation-text', _handle_translation_text);
meeting.off('translation-language-changed', _handle_translation_language_changed);
meeting.off('character-joined', _handle_character_joined);
meeting.off('character-left', _handle_character_left);
meeting.off('media-relay-started', _handle_media_relay_started);
meeting.off('media-relay-stopped', _handle_media_relay_stopped);
meeting.off('media-relay-error', _handle_media_relay_error);
meeting.off('media-relay-request-response', _handle_media_relay_request_response);
meeting.off('media-relay-request-received', _handle_media_relay_request_received);
meeting.off('quality-limitation', _handle_quality_limitation_received);
}
if (typeof (meeting === null || meeting === void 0 ? void 0 : (_meeting$localPartici = meeting.localParticipant) === null || _meeting$localPartici === void 0 ? void 0 : _meeting$localPartici.off) === 'function') {
meeting.localParticipant.off('stream-enabled', _handle_localParticipant_stream_enabled);
meeting.localParticipant.off('stream-disabled', _handle_localParticipant_stream_disabled);
}
resetStates();
}
};
var _handle_pin_state_changed = function _handle_pin_state_changed(_ref2) {
var participantId = _ref2.participantId,
state = _ref2.state,
pinnedBy = _ref2.pinnedBy;
setPinnedParticipants(function (pinnedParticipants) {
if (!state.cam && !state.share) {
pinnedParticipants["delete"](participantId);
} else {
pinnedParticipants.set(participantId, state);
}
var pinnedParticipantsToSet = new Map(pinnedParticipants);
return pinnedParticipantsToSet;
});
eventEmitter.emit(events['pin-state-changed'], {
participantId: participantId,
state: state,
pinnedBy: pinnedBy
});
};
var _handle_streams_paused = function _handle_streams_paused(_ref3) {
var kind = _ref3.kind;
eventEmitter.emit(events['paused-all-streams'], {
kind: kind
});
};
var _handle_streams_resumed = function _handle_streams_resumed(_ref4) {
var kind = _ref4.kind;
eventEmitter.emit(events['resumed-all-streams'], {
kind: kind
});
};
var _handle_connection_open = function _handle_connection_open(connection) {
setConnections(function (s) {
s.set(connection.id, connection);
var connectionsToSet = new Map(s);
return connectionsToSet;
});
eventEmitter.emit(events['connection-open'], connection);
};
var _handle_connection_close = function _handle_connection_close(connectionId) {
setConnections(function (s) {
s["delete"](connectionId);
var newConnections = new Map(s);
return newConnections;
});
eventEmitter.emit(events['connection-close'], connectionId);
};
var _handle_switch_meeting = function _handle_switch_meeting(d) {
eventEmitter.emit(events['switch-meeting'], d);
};
var _handle_error = function _handle_error(data) {
eventEmitter.emit(events['error'], data);
};
var _handle_recording_state_changed = function _handle_recording_state_changed(data) {
setRecordingState(data === null || data === void 0 ? void 0 : data.status);
eventEmitter.emit(events['recording-state-changed'], data);
};
var _handle_livestream_state_changed = function _handle_livestream_state_changed(data) {
setLivestreamState(data === null || data === void 0 ? void 0 : data.status);
eventEmitter.emit(events['livestream-state-changed'], data);
};
var _handle_hls_state_changed = function _handle_hls_state_changed(data) {
setHlsState(data === null || data === void 0 ? void 0 : data.status);
if ((data === null || data === void 0 ? void 0 : data.status) == 'HLS_PLAYABLE') {
setHlsUrls({
downstreamUrl: data === null || data === void 0 ? void 0 : data.downstreamUrl,
playbackHlsUrl: data === null || data === void 0 ? void 0 : data.playbackHlsUrl,
livestreamUrl: data === null || data === void 0 ? void 0 : data.livestreamUrl
});
} else if ((data === null || data === void 0 ? void 0 : data.status) == 'HLS_STOPPED') {
setHlsUrls({
downstreamUrl: null,
playbackHlsUrl: null,
livestreamUrl: null
});
}
eventEmitter.emit(events['hls-state-changed'], data);
};
var _handle_meeting_state_changed = function _handle_meeting_state_changed(data) {
eventEmitter.emit(events['meeting-state-changed'], data);
if ((data === null || data === void 0 ? void 0 : data.state) == 'RECONNECTING') {
setIsMeetingJoined(false);
}
};
var _handle_socket_state_changed = function _handle_socket_state_changed(data) {
if ((data === null || data === void 0 ? void 0 : data.state) == 'SOCKET_DISCONNECTED') {
setIsMeetingJoined(false);
}
};
var _handle_transcription_state_changed = function _handle_transcription_state_changed(data) {
setTranscriptionState(data === null || data === void 0 ? void 0 : data.status);
eventEmitter.emit(events['transcription-state-changed'], data);
};
var _handle_transcription_text = function _handle_transcription_text(data) {
eventEmitter.emit(events['transcription-text'], data);
};
var _handle_translation_state_changed = function _handle_translation_state_changed(data) {
setTranslationState(data === null || data === void 0 ? void 0 : data.status);
eventEmitter.emit(events['translation-state-changed'], data);
};
var _handle_translation_text = function _handle_translation_text(data) {
eventEmitter.emit(events['translation-text'], data);
};
var _handle_translation_language_changed = function _handle_translation_language_changed(data) {
eventEmitter.emit(events['translation-language-changed'], data);
};
var _handle_whiteboard_started = function _handle_whiteboard_started(data) {
eventEmitter.emit(events['whiteboard-started'], data);
};
var _handle_whiteboard_stopped = function _handle_whiteboard_stopped(data) {
eventEmitter.emit(events['whiteboard-stopped'], data);
};
var _handle_character_joined = function _handle_character_joined(character) {
setCharacters(function (characters) {
characters.set(character.id, character);
var charactersToSet = new Map(characters);
return charactersToSet;
});
eventEmitter.emit(events['character-joined'], character);
};
var _handle_character_left = function _handle_character_left(character) {
setCharacters(function (characters) {
characters["delete"](character.id);
var newCharacters = new Map(characters);
return newCharacters;
});
eventEmitter.emit(events['character-left'], character);
};
var _handel_participant_mode_changed = function _handel_participant_mode_changed(data) {
var _meetingRef$current2, _meetingRef$current2$;
setParticipants(function (participants) {
var part = participants.get(data.participantId);
part.mode = data.mode;
participants.set(part.id, part);
var participantsToSet = new Map(participants);
return participantsToSet;
});
if (data.participantId === (meetingRef === null || meetingRef === void 0 ? void 0 : (_meetingRef$current2 = meetingRef.current) === null || _meetingRef$current2 === void 0 ? void 0 : (_meetingRef$current2$ = _meetingRef$current2.localParticipant) === null || _meetingRef$current2$ === void 0 ? void 0 : _meetingRef$current2$.id)) {
setLocalParticipant(function (participant) {
participant.mode = data.mode;
return participant;
});
}
eventEmitter.emit(events['participant-mode-changed'], data);
};
var _handle_media_rela