@videosdk.live/react-sdk 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -458,7 +458,7 @@ var MeetingConsumer = function MeetingConsumer(_ref2) {
458
458
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(MeetingProviderContex.Consumer, null, children));
459
459
  };
460
460
 
461
- var version = "0.7.0";
461
+ var version = "0.8.0";
462
462
 
463
463
  var MeetingProvider = function MeetingProvider(_ref) {
464
464
  var children = _ref.children,
@@ -1884,8 +1884,14 @@ var usePubSub = function usePubSub(topic, _temp) {
1884
1884
  setMessages = _useState[1];
1885
1885
  var isSubscribed = React.useRef(false);
1886
1886
  var publish = function publish(message, options, payload) {
1887
- if (meeting) {
1888
- return meeting.pubSub.publish(topic, message, options, payload);
1887
+ try {
1888
+ return Promise.resolve(function () {
1889
+ if (meeting) {
1890
+ return Promise.resolve(meeting.pubSub.publish(topic, message, options, payload));
1891
+ }
1892
+ }());
1893
+ } catch (e) {
1894
+ return Promise.reject(e);
1889
1895
  }
1890
1896
  };
1891
1897
  var _handlePubSub = function _handlePubSub(data) {
@@ -2499,6 +2505,180 @@ var useWhiteboard = function useWhiteboard() {
2499
2505
  };
2500
2506
  };
2501
2507
 
2508
+ var useAgentParticipant = function useAgentParticipant(participantId, _temp) {
2509
+ var _mMeeting$participant;
2510
+ var _ref = _temp === void 0 ? {} : _temp,
2511
+ _ref$onAgentStateChan = _ref.onAgentStateChanged,
2512
+ onAgentStateChanged = _ref$onAgentStateChan === void 0 ? function () {} : _ref$onAgentStateChan,
2513
+ _ref$onAgentTranscrip = _ref.onAgentTranscriptionReceived,
2514
+ onAgentTranscriptionReceived = _ref$onAgentTranscrip === void 0 ? function () {} : _ref$onAgentTranscrip,
2515
+ _ref$onStreamEnabled = _ref.onStreamEnabled,
2516
+ onStreamEnabled = _ref$onStreamEnabled === void 0 ? function () {} : _ref$onStreamEnabled,
2517
+ _ref$onStreamDisabled = _ref.onStreamDisabled,
2518
+ onStreamDisabled = _ref$onStreamDisabled === void 0 ? function () {} : _ref$onStreamDisabled,
2519
+ _ref$onMediaStatusCha = _ref.onMediaStatusChanged,
2520
+ onMediaStatusChanged = _ref$onMediaStatusCha === void 0 ? function () {} : _ref$onMediaStatusCha;
2521
+ var mMeeting = useMeeting();
2522
+ var _useState = React.useState(null),
2523
+ webcamStream = _useState[0],
2524
+ setWebcamStream = _useState[1];
2525
+ var _useState2 = React.useState(null),
2526
+ micStream = _useState2[0],
2527
+ setMicStream = _useState2[1];
2528
+ var _useState3 = React.useState(null),
2529
+ agentState = _useState3[0],
2530
+ setAgentState = _useState3[1];
2531
+ var _useState4 = React.useState(false),
2532
+ webcamOn = _useState4[0],
2533
+ setWebcamOn = _useState4[1];
2534
+ var _useState5 = React.useState(false),
2535
+ micOn = _useState5[0],
2536
+ setMicOn = _useState5[1];
2537
+ var _useState6 = React.useState((_mMeeting$participant = mMeeting.participants.get(participantId)) === null || _mMeeting$participant === void 0 ? void 0 : _mMeeting$participant.mode),
2538
+ mode = _useState6[0],
2539
+ setMode = _useState6[1];
2540
+ var _useMemo = React.useMemo(function () {
2541
+ var _mMeeting$pinnedParti;
2542
+ var participant = mMeeting.participants.get(participantId);
2543
+ if (participant && !participant.isAgent) {
2544
+ console.warn("useAgentParticipant: Participant " + participantId + " is not an agent participant.");
2545
+ }
2546
+ var pinState = (mMeeting === null || mMeeting === void 0 ? void 0 : (_mMeeting$pinnedParti = mMeeting.pinnedParticipants) === null || _mMeeting$pinnedParti === void 0 ? void 0 : _mMeeting$pinnedParti.get(participantId)) || {
2547
+ cam: false,
2548
+ share: false
2549
+ };
2550
+ return {
2551
+ agentParticipant: participant !== null && participant !== void 0 && participant.isAgent ? participant : null,
2552
+ activeSpeakerId: mMeeting.activeSpeakerId,
2553
+ pinState: pinState
2554
+ };
2555
+ }, [mMeeting.participants, mMeeting.pinnedParticipants, mMeeting.activeSpeakerId, participantId]),
2556
+ agentParticipant = _useMemo.agentParticipant,
2557
+ activeSpeakerId = _useMemo.activeSpeakerId,
2558
+ pinState = _useMemo.pinState;
2559
+ var setTrack = function setTrack(stream) {
2560
+ if (stream.track.readyState !== 'live') return;
2561
+ switch (stream.kind) {
2562
+ case 'video':
2563
+ setWebcamStream(stream);
2564
+ break;
2565
+ case 'audio':
2566
+ setMicStream(stream);
2567
+ break;
2568
+ }
2569
+ };
2570
+ var unsetTrack = function unsetTrack(stream) {
2571
+ switch (stream.kind) {
2572
+ case 'video':
2573
+ setWebcamStream(null);
2574
+ break;
2575
+ case 'audio':
2576
+ setMicStream(null);
2577
+ break;
2578
+ }
2579
+ };
2580
+ var _handleAgentStateChanged = function _handleAgentStateChanged(state) {
2581
+ setAgentState(state);
2582
+ onAgentStateChanged(state);
2583
+ };
2584
+ var _handleTranscriptionReceived = function _handleTranscriptionReceived(data) {
2585
+ onAgentTranscriptionReceived(data);
2586
+ };
2587
+ var _handleStreamEnabled = function _handleStreamEnabled(stream) {
2588
+ setTrack(stream);
2589
+ onStreamEnabled(stream);
2590
+ };
2591
+ var _handleMediaStatusChanged = function _handleMediaStatusChanged(data) {
2592
+ var kind = data.kind,
2593
+ peerId = data.peerId,
2594
+ newStatus = data.newStatus;
2595
+ if (kind == 'audio') {
2596
+ setMicOn(newStatus);
2597
+ } else if (kind == 'video') {
2598
+ setWebcamOn(newStatus);
2599
+ }
2600
+ onMediaStatusChanged({
2601
+ kind: kind,
2602
+ peerId: peerId,
2603
+ newStatus: newStatus
2604
+ });
2605
+ };
2606
+ var _handleStreamDisabled = function _handleStreamDisabled(stream) {
2607
+ unsetTrack(stream);
2608
+ onStreamDisabled(stream);
2609
+ };
2610
+ var _handleParticipantModeChanged = function _handleParticipantModeChanged(data) {
2611
+ if (participantId === data.participantId) {
2612
+ setMode(data.mode);
2613
+ }
2614
+ };
2615
+ var remove = function remove() {
2616
+ agentParticipant === null || agentParticipant === void 0 ? void 0 : agentParticipant.remove();
2617
+ };
2618
+ var pin = function pin(data) {
2619
+ agentParticipant === null || agentParticipant === void 0 ? void 0 : agentParticipant.pin(data);
2620
+ };
2621
+ var unpin = function unpin(data) {
2622
+ agentParticipant === null || agentParticipant === void 0 ? void 0 : agentParticipant.unpin(data);
2623
+ };
2624
+ var getAudioStats = function getAudioStats() {
2625
+ return Promise.resolve(agentParticipant === null || agentParticipant === void 0 ? void 0 : agentParticipant.getAudioStats());
2626
+ };
2627
+ var getVideoStats = function getVideoStats() {
2628
+ return Promise.resolve(agentParticipant === null || agentParticipant === void 0 ? void 0 : agentParticipant.getVideoStats());
2629
+ };
2630
+ React.useEffect(function () {
2631
+ if (!agentParticipant) return;
2632
+ var streams = agentParticipant.streams;
2633
+ if (streams) {
2634
+ streams.forEach(function (stream) {
2635
+ return setTrack(stream);
2636
+ });
2637
+ }
2638
+ if (agentParticipant !== null && agentParticipant !== void 0 && agentParticipant.micOn) {
2639
+ setMicOn(micOn);
2640
+ }
2641
+ if (agentParticipant !== null && agentParticipant !== void 0 && agentParticipant.webcamOn) {
2642
+ setWebcamOn(webcamOn);
2643
+ }
2644
+ setAgentState(agentParticipant === null || agentParticipant === void 0 ? void 0 : agentParticipant.agentState);
2645
+ agentParticipant.on('agent-state-changed', _handleAgentStateChanged);
2646
+ agentParticipant.on('agent-transcription-received', _handleTranscriptionReceived);
2647
+ agentParticipant.on('stream-enabled', _handleStreamEnabled);
2648
+ agentParticipant.on('stream-disabled', _handleStreamDisabled);
2649
+ agentParticipant.on('media-status-changed', _handleMediaStatusChanged);
2650
+ eventEmitter.on(events['participant-mode-changed'], _handleParticipantModeChanged);
2651
+ return function () {
2652
+ agentParticipant.off('agent-state-changed', _handleAgentStateChanged);
2653
+ agentParticipant.off('agent-transcription-received', _handleTranscriptionReceived);
2654
+ agentParticipant.off('stream-enabled', _handleStreamEnabled);
2655
+ agentParticipant.off('stream-disabled', _handleStreamDisabled);
2656
+ agentParticipant.off('media-status-changed', _handleMediaStatusChanged);
2657
+ eventEmitter.off(events['participant-mode-changed'], _handleParticipantModeChanged);
2658
+ };
2659
+ }, [agentParticipant]);
2660
+ return {
2661
+ agentParticipant: agentParticipant,
2662
+ id: agentParticipant === null || agentParticipant === void 0 ? void 0 : agentParticipant.id,
2663
+ displayName: agentParticipant === null || agentParticipant === void 0 ? void 0 : agentParticipant.displayName,
2664
+ agentId: agentParticipant === null || agentParticipant === void 0 ? void 0 : agentParticipant.agentId,
2665
+ agentState: agentState,
2666
+ webcamStream: webcamStream,
2667
+ micStream: micStream,
2668
+ webcamOn: webcamOn || !!webcamStream,
2669
+ micOn: micOn || !!micStream,
2670
+ mode: mode,
2671
+ metaData: agentParticipant === null || agentParticipant === void 0 ? void 0 : agentParticipant.metaData,
2672
+ pinState: pinState,
2673
+ isActiveSpeaker: activeSpeakerId === participantId,
2674
+ pin: pin,
2675
+ unpin: unpin,
2676
+ remove: remove,
2677
+ getAudioStats: getAudioStats,
2678
+ getVideoStats: getVideoStats
2679
+ };
2680
+ };
2681
+
2502
2682
  var _excluded = ["participantId", "type"];
2503
2683
  var Constants = jsSdk.VideoSDK.Constants;
2504
2684
  var createCameraVideoTrack = function createCameraVideoTrack(_ref) {
@@ -2794,6 +2974,7 @@ exports.createMicrophoneAudioTrack = createMicrophoneAudioTrack;
2794
2974
  exports.createScreenShareVideoTrack = createScreenShareVideoTrack;
2795
2975
  exports.getNetworkStats = getNetworkStats;
2796
2976
  exports.setLogLevel = setLogLevel;
2977
+ exports.useAgentParticipant = useAgentParticipant;
2797
2978
  exports.useCharacter = useCharacter;
2798
2979
  exports.useConnection = useConnection;
2799
2980
  exports.useFile = useFile;