@videosdk.live/react-sdk 0.1.64 → 0.1.65

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
@@ -300,7 +300,7 @@ var MeetingConsumer = function MeetingConsumer(_ref2) {
300
300
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(MeetingProviderContex.Consumer, null, children));
301
301
  };
302
302
 
303
- var version = "0.1.64";
303
+ var version = "0.1.65";
304
304
 
305
305
  var MeetingProvider = function MeetingProvider(_ref) {
306
306
  var children = _ref.children,
@@ -1119,7 +1119,6 @@ var useParticipant = function useParticipant(participantId, _temp) {
1119
1119
  onStreamEnabled(stream);
1120
1120
  };
1121
1121
  var _handleParticipantModeChanged = function _handleParticipantModeChanged(data) {
1122
- console.log('## FINAL', data);
1123
1122
  if (participantId === data.participantId) {
1124
1123
  setMode(data.mode);
1125
1124
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils.js","../src/meeting/meetingProviderContextDef.js","../src/meeting/MeetingProvider.js","../src/participant/useParticipant.js","../src/connection/useConnection.js","../src/pubSub/usePubSub.js","../src/index.js"],"sourcesContent":["import EventEmitter from 'events';\n\nconst eventPrifix = 'videosdk-live-react-sdk';\n\nconst events = {\n 'participant-joined': `${eventPrifix}-participant-joined`,\n 'participant-left': `${eventPrifix}-participant-left`,\n 'speaker-changed': `${eventPrifix}-speaker-changed`,\n 'presenter-changed': `${eventPrifix}-presenter-changed`,\n 'main-participant-changed': `${eventPrifix}-main-participant-changed`,\n 'entry-requested': `${eventPrifix}-entry-requested`,\n 'entry-responded': `${eventPrifix}-entry-responded`,\n 'recording-started': `${eventPrifix}-recording-started`,\n 'recording-stopped': `${eventPrifix}-recording-stopped`,\n 'chat-message': `${eventPrifix}-chat-message`,\n 'meeting-joined': `${eventPrifix}-meeting-joined`,\n 'meeting-left': `${eventPrifix}-meeting-left`,\n 'live-stream-started': `${eventPrifix}-live-stream-started`,\n 'live-stream-stopped': `${eventPrifix}-live-stream-stopped`,\n 'video-state-changed': `${eventPrifix}-video-state-changed`,\n 'video-seeked': `${eventPrifix}-video-seeked`,\n 'webcam-requested': `${eventPrifix}-webcam-requested`,\n 'mic-requested': `${eventPrifix}-mic-requested`,\n 'pin-state-changed': `${eventPrifix}-pin-state-changed`,\n 'connection-open': `${eventPrifix}-connection-open`,\n 'connection-close': `${eventPrifix}-connection-close`,\n 'switch-meeting': `${eventPrifix}-switch-meeting`,\n error: `${eventPrifix}-error`,\n 'hls-started': `${eventPrifix}-hls-started`,\n 'hls-stopped': `${eventPrifix}-hls-stopped`,\n 'hls-state-changed': `${eventPrifix}-hls-state-changed`,\n 'recording-state-changed': `${eventPrifix}-recording-state-changed`,\n 'livestream-state-changed': `${eventPrifix}-livestream-state-changed`,\n 'meeting-state-changed': `${eventPrifix}-meeting-state-changed`,\n 'participant-mode-changed': `${eventPrifix}-participant-mode-changed`\n};\n\nconst eventEmitter = new EventEmitter();\neventEmitter.setMaxListeners(9999);\n\nexport { eventEmitter, events };\n","import React from 'react';\nimport { useContext, createContext, useEffect } from 'react';\nimport { eventEmitter, events } from '../utils';\nexport const MeetingProviderContex = createContext();\n\n/**\n *\n * @param {{\n * onParticipantJoined?: () => void;\n * onParticipantLeft?: () => void;\n * onSpeakerChanged?: () => void;\n * onPresenterChanged?: () => void;\n * onMainParticipantChanged?: () => void;\n * onEntryRequested?: () => void;\n * onEntryResponded?: () => void;\n * onRecordingStarted?: () => void;\n * onRecordingStopped?: () => void;\n * onChatMessage?: () => void;\n * onMeetingJoined?: () => void;\n * onMeetingLeft?: () => void;\n * onLiveStreamStarted?: () => void;\n * onLiveStreamStopped?: () => void;\n * onVideoStateChanged?: () => void;\n * onVideoSeeked?: () => void;\n * onWebcamRequested?: () => void;\n * onMicRequested?: () => void;\n * onPinStateChanged?: () => void;\n * onConnectionOpen?: () => void;\n * onConnetionClose?: () => void;\n * onSwitchMeeting?: () => void;\n * onError?: () => void;\n * onHlsStarted?: () => void;\n * onHlsStopped?: () => void;\n * onHlsStateChanged?: () => void;\n * onRecordingStateChanged?: () => void;\n * onLivestreamStateChanged?: () => void;\n * onMeetingStateChanged?: () => void;\n *}}\n * @returns {{\n * meetingId: string,\n * meeting: Meeting,\n * localParticipant: Participant,\n * activeSpeakerId: string,\n * participants: Map<string, Participant>,\n * pinnedParticipants: Map<string, {cam:boolean, share:boolean}>,\n * presenterId: string,\n * localMicOn: boolean,\n * localWebcamOn: boolean,\n * isRecording: boolean,\n * isLiveStreaming: boolean,\n * localScreenShareOn: boolean,\n * connections: Map<string, Connection>,\n * join: () => void\n * leave: () => void\n * end: () => void\n * enableMic: (customAudioTrack?: MediaStream | undefined) => void\n * disableMic: () => void\n * toggleMic: (customAudioTrack?: MediaStream | undefined) => void\n * enableWebcam: (customVideoTrack?: MediaStream | undefined) => void\n * disableWebcam: () => void\n * toggleWebcam: (customVideoTrack?: MediaStream | undefined) => void\n * enableScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * disableScreenShare: () => void\n * toggleScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * startRecording: (webhookUrl?: string, awsDirPath?: string, config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * };\n * }) => void\n * stopRecording: () => void\n * startLiveStream: (outputs: Array<{\n * url: string;\n * streamKey: string;\n * }>,\n * config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * };\n * }) => void\n * stopLiveStream: () => void\n * startHls: (config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * };\n * }) => void\n * stopHls: () => void\n * getMics: () => Promise<{\n * deviceId: string;\n * label: string;\n * }[]>void\n * getWebcams: () => Promise<{\n * deviceId: string;\n * label: string;\n * facingMode: \"environment\" | \"front\"\n * }[]>void\n * changeMic: (object: string | MediaStream) => void\n * changeWebcam: (object: string | MediaStream) => void\n * startVideo: ({ link }: {\n * link: string;\n * }) => void\n * stopVideo: () => void\n * pauseVideo: ({ currentTime }: {\n * currentTime: number;\n * }) => void\n * resumeVideo: () => void\n * seekVideo: ({ currentTime }: {\n * currentTime: number;\n * }) => void\n * connectTo: ({ meetingId, payload }: {\n * meetingId: string;\n * payload: string;\n * }) => void\n *\n * }}\n */\nexport const useMeeting = ({\n onParticipantJoined = () => {},\n onParticipantLeft = () => {},\n onSpeakerChanged = () => {},\n onPresenterChanged = () => {},\n onMainParticipantChanged = () => {},\n onEntryRequested = () => {},\n onEntryResponded = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onChatMessage = () => {},\n onMeetingJoined = () => {},\n onMeetingLeft = () => {},\n onLiveStreamStarted = () => {},\n onLiveStreamStopped = () => {},\n onVideoStateChanged = () => {},\n onVideoSeeked = () => {},\n onWebcamRequested = () => {},\n onMicRequested = () => {},\n onPinStateChanged = () => {},\n onConnectionOpen = () => {},\n onConnetionClose = () => {},\n onSwitchMeeting = () => {},\n onError = () => {},\n onHlsStarted = () => {},\n onHlsStopped = () => {},\n onHlsStateChanged = () => {},\n onRecordingStateChanged = () => {},\n onLivestreamStateChanged = () => {},\n onMeetingStateChanged = () => {},\n onParticipantModeChanged = () => {}\n} = {}) => {\n useEffect(() => {\n eventEmitter.on(events['participant-joined'], onParticipantJoined);\n eventEmitter.on(events['participant-left'], onParticipantLeft);\n eventEmitter.on(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.on(events['presenter-changed'], onPresenterChanged);\n eventEmitter.on(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.on(events['entry-requested'], onEntryRequested);\n eventEmitter.on(events['entry-responded'], onEntryResponded);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['chat-message'], onChatMessage);\n eventEmitter.on(events['meeting-joined'], onMeetingJoined);\n eventEmitter.on(events['meeting-left'], onMeetingLeft);\n eventEmitter.on(events['live-stream-started'], onLiveStreamStarted);\n eventEmitter.on(events['live-stream-stopped'], onLiveStreamStopped);\n eventEmitter.on(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.on(events['video-seeked'], onVideoSeeked);\n eventEmitter.on(events['webcam-requested'], onWebcamRequested);\n eventEmitter.on(events['mic-requested'], onMicRequested);\n eventEmitter.on(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.on(events['connection-open'], onConnectionOpen);\n eventEmitter.on(events['connection-close'], onConnetionClose);\n eventEmitter.on(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.on(events['error'], onError);\n eventEmitter.on(events['hls-started'], onHlsStarted);\n eventEmitter.on(events['hls-stopped'], onHlsStopped);\n eventEmitter.on(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.on(events['recording-state-changed'], onRecordingStateChanged);\n eventEmitter.on(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.on(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n\n return () => {\n eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.off(events['participant-joined'], onParticipantJoined);\n eventEmitter.off(events['participant-left'], onParticipantLeft);\n eventEmitter.off(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.off(events['presenter-changed'], onPresenterChanged);\n eventEmitter.off(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.off(events['entry-requested'], onEntryRequested);\n eventEmitter.off(events['entry-responded'], onEntryResponded);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['chat-message'], onChatMessage);\n eventEmitter.off(events['meeting-joined'], onMeetingJoined);\n eventEmitter.off(events['meeting-left'], onMeetingLeft);\n eventEmitter.off(events['live-stream-started'], onLiveStreamStarted);\n eventEmitter.off(events['live-stream-stopped'], onLiveStreamStopped);\n eventEmitter.off(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.off(events['video-seeked'], onVideoSeeked);\n eventEmitter.off(events['webcam-requested'], onWebcamRequested);\n eventEmitter.off(events['mic-requested'], onMicRequested);\n eventEmitter.off(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.off(events['connection-open'], onConnectionOpen);\n eventEmitter.off(events['connection-close'], onConnetionClose);\n eventEmitter.off(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.off(events['error'], onError);\n eventEmitter.off(events['hls-started'], onHlsStarted);\n eventEmitter.off(events['hls-stopped'], onHlsStopped);\n eventEmitter.off(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.off(\n events['recording-state-changed'],\n onRecordingStateChanged\n );\n eventEmitter.off(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.off(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n };\n }, []);\n return useContext(MeetingProviderContex);\n};\n\nexport const MeetingConsumer = ({\n children,\n onParticipantJoined = () => {},\n onParticipantLeft = () => {},\n onSpeakerChanged = () => {},\n onPresenterChanged = () => {},\n onMainParticipantChanged = () => {},\n onEntryRequested = () => {},\n onEntryResponded = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onChatMessage = () => {},\n onMeetingJoined = () => {},\n onMeetingLeft = () => {},\n onLiveStreamStarted = () => {},\n onLiveStreamStopped = () => {},\n onVideoStateChanged = () => {},\n onVideoSeeked = () => {},\n onWebcamRequested = () => {},\n onMicRequested = () => {},\n onPinStateChanged = () => {},\n onConnectionOpen = () => {},\n onConnetionClose = () => {},\n onSwitchMeeting = () => {},\n onError = () => {},\n onHlsStarted = () => {},\n onHlsStopped = () => {},\n onHlsStateChanged = () => {},\n onRecordingStateChanged = () => {},\n onLivestreamStateChanged = () => {},\n onMeetingStateChanged = () => {},\n onParticipantModeChanged = () => {}\n}) => {\n useEffect(() => {\n eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.on(events['participant-joined'], onParticipantJoined);\n eventEmitter.on(events['participant-left'], onParticipantLeft);\n eventEmitter.on(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.on(events['presenter-changed'], onPresenterChanged);\n eventEmitter.on(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.on(events['entry-requested'], onEntryRequested);\n eventEmitter.on(events['entry-responded'], onEntryResponded);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['chat-message'], onChatMessage);\n eventEmitter.on(events['meeting-joined'], onMeetingJoined);\n eventEmitter.on(events['meeting-left'], onMeetingLeft);\n eventEmitter.on(events['live-stream-enabled'], onLiveStreamStarted);\n eventEmitter.on(events['live-stream-disabled'], onLiveStreamStopped);\n eventEmitter.on(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.on(events['video-seeked'], onVideoSeeked);\n eventEmitter.on(events['webcam-requested'], onWebcamRequested);\n eventEmitter.on(events['mic-requested'], onMicRequested);\n eventEmitter.on(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.on(events['connection-open'], onConnectionOpen);\n eventEmitter.on(events['connection-close'], onConnetionClose);\n eventEmitter.on(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.on(events['error'], onError);\n eventEmitter.on(events['hls-started'], onHlsStarted);\n eventEmitter.on(events['hls-stopped'], onHlsStopped);\n eventEmitter.on(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.on(events['recording-state-changed'], onRecordingStateChanged);\n eventEmitter.on(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.on(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n\n return () => {\n eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.off(events['participant-joined'], onParticipantJoined);\n eventEmitter.off(events['participant-left'], onParticipantLeft);\n eventEmitter.off(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.off(events['presenter-changed'], onPresenterChanged);\n eventEmitter.off(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.off(events['entry-requested'], onEntryRequested);\n eventEmitter.off(events['entry-responded'], onEntryResponded);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['chat-message'], onChatMessage);\n eventEmitter.off(events['meeting-joined'], onMeetingJoined);\n eventEmitter.off(events['meeting-left'], onMeetingLeft);\n eventEmitter.off(events['live-stream-enabled'], onLiveStreamStarted);\n eventEmitter.off(events['live-stream-disabled'], onLiveStreamStopped);\n eventEmitter.off(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.off(events['video-seeked'], onVideoSeeked);\n eventEmitter.off(events['webcam-requested'], onWebcamRequested);\n eventEmitter.off(events['mic-requested'], onMicRequested);\n eventEmitter.off(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.off(events['connection-open'], onConnectionOpen);\n eventEmitter.off(events['connection-close'], onConnetionClose);\n eventEmitter.off(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.off(events['error'], onError);\n eventEmitter.off(events['hls-started'], onHlsStarted);\n eventEmitter.off(events['hls-stopped'], onHlsStopped);\n eventEmitter.off(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.off(\n events['recording-state-changed'],\n onRecordingStateChanged\n );\n eventEmitter.off(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.off(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n };\n }, []);\n\n return (\n <React.Fragment>\n <MeetingProviderContex.Consumer>\n {children}\n </MeetingProviderContex.Consumer>\n </React.Fragment>\n );\n};\n","import { MeetingProviderContex } from './meetingProviderContextDef';\nimport React, { useEffect, useRef, useState, useMemo } from 'react';\nimport { eventEmitter, events } from '../utils';\nimport { VideoSDK } from '@videosdk.live/js-sdk';\nimport { version as reactSDKVersion } from '../../package.json';\n\n/**\n *\n * @param {{\n * children:any,\n * config:{\n * meetingId: string,\n * autoConsume?: boolean,\n * preferredProtocol?:\"UDP_ONLY\" | \"UDP_OVER_TCP\",\n * participantId?:string | undefined,\n * name:string,\n * micEnabled:boolean,\n * webcamEnabled:boolean,\n * maxResolution?:\"hd\" | \"sd\",\n * customCameraVideoTrack?: MediaStream | undefined\n * customMicrophoneAudioTrack?: MediaStream | undefined,\n * multiStream?: boolean,\n * mode?: \"CONFERENCE\" | \"VIEWER\",\n * },\n * token: string,\n * joinWithoutUserInteraction?: boolean,\n * reinitialiseMeetingOnConfigChange?: boolean,\n * deviceInfo?: object\n * }}\n *\n */\nconst MeetingProvider = ({\n children,\n config,\n token,\n joinWithoutUserInteraction,\n reinitialiseMeetingOnConfigChange: _reinitialiseMeetingOnConfigChange,\n deviceInfo\n}) => {\n const [meeting, setMeeting] = useState(null);\n const [localParticipant, setLocalParticipant] = useState(null);\n const [mainParticipant, setMainParticipant] = useState(null);\n const [activeSpeakerId, setActiveSpeakerId] = useState(null);\n const [presenterId, setPresenterId] = useState(null);\n const [localMicOn, setLocalMicOn] = useState(false);\n const [localWebcamOn, setLocalWebcamOn] = useState(false);\n const [localScreenShareOn, setLocalScreenShareOn] = useState(false);\n const [isRecording, setIsRecording] = useState(false);\n const [messages, setMessages] = useState([]);\n const [participants, setParticipants] = useState(new Map());\n const [pinnedParticipants, setPinnedParticipants] = useState(new Map());\n const [isLiveStreaming, setIsLiveStreaming] = useState(false);\n const [connections, setConnections] = useState(new Map());\n const [isMeetingJoined, setIsMeetingJoined] = useState(false);\n const [isHls, setIsHls] = useState(false);\n const [recordingState, setRecordingState] = useState(null);\n const [livestreamState, setLivestreamState] = useState(null);\n const [hlsState, setHlsState] = useState(null);\n\n const meetingRef = useRef();\n const localMicOnRef = useRef();\n const localWebcamOnRef = useRef();\n const localScreenShareOnRef = useRef();\n const isRecordingRef = useRef();\n const configRef = useRef(config);\n const tokenRef = useRef(token);\n const joinedOnFirstRender = useRef(false);\n const isHlsRef = useRef();\n\n const reinitialiseMeetingOnConfigChange = useMemo(\n () => _reinitialiseMeetingOnConfigChange,\n []\n );\n\n useEffect(() => {\n meetingRef.current = meeting;\n }, [meeting]);\n useEffect(() => {\n localMicOnRef.current = localMicOn;\n }, [localMicOn]);\n useEffect(() => {\n localWebcamOnRef.current = localWebcamOn;\n }, [localWebcamOn]);\n useEffect(() => {\n localScreenShareOnRef.current = localScreenShareOn;\n }, [localScreenShareOn]);\n useEffect(() => {\n isRecordingRef.current = isRecording;\n }, [isRecording]);\n useEffect(() => {\n configRef.current = config;\n }, [config]);\n useEffect(() => {\n tokenRef.current = token;\n }, [token]);\n useEffect(() => {\n isHlsRef.current = isHls;\n }, [isHls]);\n\n const resetStates = () => {\n setMeeting(null);\n setLocalParticipant(null);\n setMainParticipant(null);\n setActiveSpeakerId(null);\n setPresenterId(null);\n setLocalMicOn(false);\n setLocalWebcamOn(false);\n setLocalScreenShareOn(false);\n setIsRecording(false);\n setMessages([]);\n setIsLiveStreaming(false);\n setParticipants(new Map());\n setPinnedParticipants(new Map());\n setConnections(new Map());\n setIsMeetingJoined(false);\n setIsHls(false);\n setRecordingState(null);\n setLivestreamState(null);\n setHlsState(null);\n };\n\n const _handle_participant_joined = participant => {\n setParticipants(participants => {\n participants.set(participant.id, participant);\n const participantsToSet = new Map(participants);\n return participantsToSet;\n });\n eventEmitter.emit(events['participant-joined'], participant);\n };\n const _handle_participant_left = participant => {\n setParticipants(participants => {\n participants.delete(participant.id);\n\n const newParticipants = new Map(participants);\n return newParticipants;\n });\n eventEmitter.emit(events['participant-left'], participant);\n };\n const _handle_presenter_changed = presenterId => {\n setPresenterId(presenterId);\n setLocalScreenShareOn(\n presenterId === meetingRef?.current?.localParticipant?.id\n );\n eventEmitter.emit(events['presenter-changed'], presenterId);\n };\n const _handle_main_participant_changed = participant => {\n setMainParticipant(participant);\n eventEmitter.emit(events['main-participant-changed'], participant);\n };\n const _handle_speaker_changed = activeSpeakerId => {\n setActiveSpeakerId(activeSpeakerId);\n eventEmitter.emit(events['speaker-changed'], activeSpeakerId);\n };\n const _handle_chat_message = data => {\n setMessages(s => [...s, data]);\n\n eventEmitter.emit(events['chat-message'], data);\n };\n const _handle_entry_requested = data => {\n eventEmitter.emit(events['entry-requested'], data);\n };\n const _handle_entry_responded = (participantId, decision) => {\n eventEmitter.emit(events['entry-responded'], participantId, decision);\n };\n const _handle_recording_started = () => {\n setIsRecording(true);\n eventEmitter.emit(events['recording-started']);\n };\n const _handle_recording_stopped = () => {\n setIsRecording(false);\n eventEmitter.emit(events['recording-stopped']);\n };\n\n const _handle_localParticipant_stream_enabled = stream => {\n if (stream.track.readyState === 'live') {\n if (stream.kind === 'video') {\n setLocalWebcamOn(true);\n } else if (stream.kind === 'audio') {\n setLocalMicOn(true);\n }\n }\n };\n const _handle_localParticipant_stream_disabled = stream => {\n if (stream.track.readyState === 'ended') {\n if (stream.kind === 'video') {\n setLocalWebcamOn(false);\n } else if (stream.kind === 'audio') {\n setLocalMicOn(false);\n }\n }\n };\n\n const _handle_live_stream_started = data => {\n setIsLiveStreaming(true);\n eventEmitter.emit(events['live-stream-started'], data);\n };\n const _handle_live_stream_stopped = () => {\n setIsLiveStreaming(false);\n eventEmitter.emit(events['live-stream-stopped']);\n };\n const _handle_hls_started = data => {\n setIsHls(true);\n eventEmitter.emit(events['hls-started'], data);\n };\n const _handle_hls_stopped = () => {\n setIsHls(false);\n eventEmitter.emit(events['hls-stopped']);\n };\n const _handle_video_state_changed = data => {\n eventEmitter.emit(events['video-state-changed'], data);\n };\n const _handle_video_seeked = data => {\n eventEmitter.emit(events['video-seeked'], data);\n };\n\n const _handle_webcam_requested = data => {\n eventEmitter.emit(events['webcam-requested'], data);\n };\n\n const _handle_mic_requested = data => {\n eventEmitter.emit(events['mic-requested'], data);\n };\n\n const _handle_meeting_joined = data => {\n joinedOnFirstRender.current = true;\n setMessages(s => [...s, ...data.messages]);\n eventEmitter.emit(events['meeting-joined'], data);\n setIsMeetingJoined(true);\n };\n\n const _handle_meeting_left = () => {\n eventEmitter.emit(events['meeting-left']);\n\n const meeting = meetingRef.current;\n\n if (meeting) {\n if (typeof meeting?.off === 'function') {\n meeting.off('meeting-state-changed', _handle_meeting_state_changed);\n meeting.off('participant-joined', _handle_participant_joined);\n meeting.off('participant-left', _handle_participant_left);\n meeting.off('presenter-changed', _handle_presenter_changed);\n meeting.off(\n 'main-participant-changed',\n _handle_main_participant_changed\n );\n meeting.off('speaker-changed', _handle_speaker_changed);\n meeting.off('entry-requested', _handle_entry_requested);\n meeting.off('entry-responded', _handle_entry_responded);\n meeting.off('chat-message', _handle_chat_message);\n meeting.off('recording-started', _handle_recording_started);\n meeting.off('recording-stopped', _handle_recording_stopped);\n meeting.off('meeting-joined', _handle_meeting_joined);\n meeting.off('meeting-left', _handle_meeting_left);\n meeting.off('livestream-started', _handle_live_stream_started);\n meeting.off('livestream-stopped', _handle_live_stream_stopped);\n meeting.off('video-state-changed', _handle_video_state_changed);\n meeting.off('video-seeked', _handle_video_seeked);\n meeting.off('webcam-requested', _handle_webcam_requested);\n meeting.off('mic-requested', _handle_mic_requested);\n meeting.off('pin-state-changed', _handle_pin_state_changed);\n meeting.off('connection-open', _handle_connection_open);\n meeting.off('connection-close', _handle_connection_close);\n meeting.off('switch-meeting', _handle_switch_meeting);\n meeting.off('error', _handle_error);\n meeting.off('hls-started', _handle_hls_started);\n meeting.off('hls-stopped', _handle_hls_stopped);\n meeting.off('recording-state-changed', _handle_recording_state_changed);\n meeting.off(\n 'livestream-state-changed',\n _handle_livestream_state_changed\n );\n meeting.off('hls-state-changed', _handle_hls_state_changed);\n meeting.off(\n 'participant-mode-changed',\n _handel_participant_mode_changed\n );\n }\n\n if (typeof meeting?.localParticipant?.off === 'function') {\n meeting.localParticipant.off(\n 'stream-enabled',\n _handle_localParticipant_stream_enabled\n );\n\n meeting.localParticipant.off(\n 'stream-disabled',\n _handle_localParticipant_stream_disabled\n );\n }\n\n resetStates();\n }\n };\n\n const _handle_pin_state_changed = ({ participantId, state, pinnedBy }) => {\n setPinnedParticipants(pinnedParticipants => {\n if (!state.cam && !state.share) {\n pinnedParticipants.delete(participantId);\n } else {\n pinnedParticipants.set(participantId, state);\n }\n\n const pinnedParticipantsToSet = new Map(pinnedParticipants);\n\n return pinnedParticipantsToSet;\n });\n\n eventEmitter.emit(events['pin-state-changed'], {\n participantId,\n state,\n pinnedBy\n });\n };\n\n const _handle_connection_open = connection => {\n setConnections(s => {\n s.set(connection.id, connection);\n const connectionsToSet = new Map(s);\n return connectionsToSet;\n });\n eventEmitter.emit(events['connection-open'], connection);\n };\n\n const _handle_connection_close = connectionId => {\n setConnections(s => {\n s.delete(connectionId);\n const newConnections = new Map(s);\n return newConnections;\n });\n eventEmitter.emit(events['connection-close'], connectionId);\n };\n\n const _handle_switch_meeting = d => {\n eventEmitter.emit(events['switch-meeting'], d);\n };\n const _handle_error = data => {\n eventEmitter.emit(events['error'], data);\n };\n\n const _handle_recording_state_changed = data => {\n setRecordingState(data?.status);\n eventEmitter.emit(events['recording-state-changed'], data);\n };\n const _handle_livestream_state_changed = data => {\n setLivestreamState(data?.status);\n eventEmitter.emit(events['livestream-state-changed'], data);\n };\n const _handle_hls_state_changed = data => {\n setHlsState(data?.status);\n eventEmitter.emit(events['hls-state-changed'], data);\n };\n\n const _handle_meeting_state_changed = data => {\n eventEmitter.emit(events['meeting-state-changed'], data);\n };\n\n const _handel_participant_mode_changed = data => {\n setParticipants(participants => {\n const part = participants.get(data.participantId);\n part.mode = data.mode;\n participants.set(part.id, part);\n return participants;\n });\n\n // Update Local Participant Object\n if (data.participantId === meetingRef?.current?.localParticipant?.id) {\n setLocalParticipant(participant => {\n participant.mode = data.mode;\n return participant;\n });\n }\n\n eventEmitter.emit(events['participant-mode-changed'], data);\n };\n\n const join = () => {\n const meeting = VideoSDK && VideoSDK.initMeeting(configRef.current);\n setMeeting(meeting);\n const { localParticipant, participants } = meeting;\n participants.set(localParticipant.id, localParticipant);\n setParticipants(participants);\n setLocalParticipant(localParticipant);\n meeting.on('meeting-state-changed', _handle_meeting_state_changed);\n meeting.on('participant-joined', _handle_participant_joined);\n meeting.on('participant-left', _handle_participant_left);\n meeting.on('presenter-changed', _handle_presenter_changed);\n meeting.on('main-participant-changed', _handle_main_participant_changed);\n meeting.on('speaker-changed', _handle_speaker_changed);\n meeting.on('entry-requested', _handle_entry_requested);\n meeting.on('entry-responded', _handle_entry_responded);\n meeting.on('chat-message', _handle_chat_message);\n meeting.on('recording-started', _handle_recording_started);\n meeting.on('recording-stopped', _handle_recording_stopped);\n meeting.on('meeting-joined', _handle_meeting_joined);\n meeting.on('meeting-left', _handle_meeting_left);\n meeting.on('livestream-started', _handle_live_stream_started);\n meeting.on('livestream-stopped', _handle_live_stream_stopped);\n meeting.on('video-state-changed', _handle_video_state_changed);\n meeting.on('video-seeked', _handle_video_seeked);\n meeting.on('webcam-requested', _handle_webcam_requested);\n meeting.on('mic-requested', _handle_mic_requested);\n meeting.on('pin-state-changed', _handle_pin_state_changed);\n\n meeting.on('connection-open', _handle_connection_open);\n meeting.on('connection-close', _handle_connection_close);\n meeting.on('switch-meeting', _handle_switch_meeting);\n meeting.on('error', _handle_error);\n meeting.on('hls-started', _handle_hls_started);\n meeting.on('hls-stopped', _handle_hls_stopped);\n meeting.on('recording-state-changed', _handle_recording_state_changed);\n meeting.on('livestream-state-changed', _handle_livestream_state_changed);\n meeting.on('hls-state-changed', _handle_hls_state_changed);\n meeting.on('participant-mode-changed', _handel_participant_mode_changed);\n\n meeting.localParticipant.on(\n 'stream-enabled',\n _handle_localParticipant_stream_enabled\n );\n meeting.localParticipant.on(\n 'stream-disabled',\n _handle_localParticipant_stream_disabled\n );\n meeting.join();\n };\n\n const leave = () => {\n const meeting = meetingRef.current;\n\n if (meeting) {\n meeting.leave();\n }\n };\n\n const end = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.end();\n }\n };\n const startRecording = (webhookUrl, awsDirPath, config) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startRecording(webhookUrl, awsDirPath, config);\n }\n };\n const stopRecording = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n const isRecording = isRecordingRef.current;\n if (isRecording) {\n meeting.stopRecording();\n }\n }\n };\n const unmuteMic = (customAudioTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.unmuteMic(customAudioTrack);\n }\n };\n const muteMic = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.muteMic();\n }\n };\n const toggleMic = (customAudioTrack = undefined) => {\n const localMicOn = localMicOnRef.current;\n\n if (localMicOn) {\n muteMic();\n } else {\n unmuteMic(customAudioTrack);\n }\n };\n const disableWebcam = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableWebcam();\n }\n };\n const enableWebcam = (customVideoTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableWebcam(customVideoTrack);\n }\n };\n const toggleWebcam = (customVideoTrack = undefined) => {\n const localWebcamOn = localWebcamOnRef.current;\n\n if (localWebcamOn) {\n disableWebcam();\n } else {\n enableWebcam(customVideoTrack);\n }\n };\n const disableScreenShare = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableScreenShare();\n }\n };\n const enableScreenShare = (customScreenShareTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableScreenShare(customScreenShareTrack);\n }\n };\n\n const toggleScreenShare = (customScreenShareTrack = undefined) => {\n const localScreenShareOn = localScreenShareOnRef.current;\n\n if (localScreenShareOn) {\n disableScreenShare();\n } else {\n enableScreenShare(customScreenShareTrack);\n }\n };\n\n const changeMode = mode => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeMode(mode);\n }\n };\n\n const sendChatMessage = text => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.sendChatMessage(text);\n }\n };\n const respondEntry = (participantId, decision) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.respondEntry(participantId, decision);\n }\n };\n const getMics = async () => {\n const meeting = meetingRef.current;\n if (meeting) {\n return await meeting.getMics();\n }\n };\n const getWebcams = async () => {\n const meeting = meetingRef.current;\n if (meeting) {\n return await meeting.getWebcams();\n }\n };\n const changeWebcam = obj => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeWebcam(obj);\n }\n };\n const changeMic = obj => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeMic(obj);\n }\n };\n const startVideo = ({ link }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startVideo({ link });\n }\n };\n\n const stopVideo = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopVideo();\n }\n };\n\n const resumeVideo = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.resumeVideo();\n }\n };\n\n const pauseVideo = ({ currentTime }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.pauseVideo({ currentTime });\n }\n };\n\n const seekVideo = ({ currentTime }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.seekVideo({ currentTime });\n }\n };\n\n const startLivestream = (streamInfo, config) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startLivestream(streamInfo, config);\n }\n };\n\n const stopLivestream = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopLivestream();\n }\n };\n\n const connectTo = async ({ meetingId, payload }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n await meeting.connectTo({ meetingId, payload });\n }\n };\n\n const startHls = config => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startHls(config);\n }\n };\n\n const stopHls = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopHls();\n }\n };\n\n const initSDK = () => {\n VideoSDK.config(tokenRef.current);\n\n if (deviceInfo) {\n VideoSDK.analytics(deviceInfo);\n } else {\n VideoSDK.analytics({\n sdkType: 'react-web',\n sdkVersion: reactSDKVersion\n });\n }\n\n if (joinWithoutUserInteraction) {\n join();\n }\n };\n\n useEffect(() => {\n initSDK();\n }, []);\n\n useEffect(() => {\n if (reinitialiseMeetingOnConfigChange && joinedOnFirstRender.current) {\n leave();\n initSDK();\n !joinWithoutUserInteraction && join();\n }\n }, [config.meetingId, token, reinitialiseMeetingOnConfigChange]);\n\n return (\n <MeetingProviderContex.Provider\n value={{\n meetingId: meeting?.id,\n meeting,\n baseUrl: meeting?.baseUrl,\n localParticipant,\n mainParticipant,\n activeSpeakerId,\n participants,\n presenterId,\n localMicOn,\n localWebcamOn,\n localScreenShareOn,\n messages,\n isRecording,\n isLiveStreaming,\n pinnedParticipants,\n connections,\n isHls,\n recordingState,\n livestreamState,\n hlsState,\n isMeetingJoined,\n //\n join,\n leave,\n end,\n //\n startRecording,\n stopRecording,\n //\n sendChatMessage,\n respondEntry,\n //\n muteMic,\n unmuteMic,\n toggleMic,\n //\n disableWebcam,\n enableWebcam,\n toggleWebcam,\n //\n disableScreenShare,\n enableScreenShare,\n toggleScreenShare,\n //\n getMics,\n getWebcams,\n changeWebcam,\n changeMic,\n changeMode,\n startVideo,\n stopVideo,\n resumeVideo,\n pauseVideo,\n seekVideo,\n startLivestream,\n stopLivestream,\n connectTo,\n\n startHls,\n stopHls\n }}\n >\n {children}\n </MeetingProviderContex.Provider>\n );\n};\n\nexport default MeetingProvider;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\nimport { eventEmitter, events } from '../utils';\n\n/**\n *\n * @param {string} participantId\n * @param {{\n * onStreamDisabled?: Function,\n * onStreamEnabled?: Function,\n * onMediaStatusChanged?: Function,\n * onVideoQualityChanged?: Function,\n * }} options\n *\n * @returns {{\n * displayName: string;\n * participant: Participant;\n * webcamStream: MediaStreamTrack;\n * micStream: MediaStreamTrack;\n * screenShareStream: MediaStreamTrack;\n * webcamOn: boolean;\n * micOn: boolean;\n * screenShareOn: boolean;\n * isLocal: boolean;\n * isActiveSpeaker: boolean;\n * isMainParticipant: boolean;\n * pinState: any;\n * mode: \"CONFERENCE\" | \"VIEWER\",\n * consumeMicStreams: () => void;\n * consumeWebcamStreams: () => void;\n * stopConsumingMicStreams: () => void;\n * stopConsumingWebcamStreams: () => void;\n * setQuality: (quality: \"low\" | \"med\" | 'high') => void;\n * setViewPort: (width: number, height: number) => void;\n * enableMic: () => void;\n * disableMic: () => void;\n * enableWebcam: () => void;\n * disableWebcam: () => void;\n * pin: (data: \"SHARE_AND_CAM\" | \"CAM\" | \"SHARE\") => void;\n * unpin: (data: \"SHARE_AND_CAM\" | \"CAM\" | \"SHARE\") => void;\n * switchTo: ({ meetingId, payload, token }: {\n * meetingId: string;\n * payload: string;\n * token: string;\n * }) => Promise<void>;\n * getAudioStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object\n * }]>;\n * getVideoStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object,\n * currentSpatialLayer: number,\n * currentTemporalLayer: number,\n * preferredSpatialLayer: number,\n * preferredTemporalLayer: number\n * }]>;\n * getShareStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object,\n * currentSpatialLayer: number,\n * currentTemporalLayer: number,\n * preferredSpatialLayer: number,\n * preferredTemporalLayer: number\n * }]>;\n *}}\n *\n */\nconst useParticipant = (\n participantId,\n {\n onStreamEnabled = () => {},\n onStreamDisabled = () => {},\n onMediaStatusChanged = () => {},\n onVideoQualityChanged = () => {}\n } = {}\n) => {\n const [webcamStream, setwebcamStream] = useState(null);\n const [micStream, setMicStream] = useState(null);\n const [screenShareStream, setScreenShareStream] = useState(null);\n const [screenShareAudioStream, setScreenShareAudioStream] = useState(null);\n\n const meeting = useMeeting();\n\n const {\n participants,\n localParticipant,\n activeSpeakerId,\n mainParticipant,\n pinState\n } = useMemo(() => {\n const participants = meeting?.participants;\n const localParticipant = meeting?.localParticipant;\n const activeSpeakerId = meeting?.activeSpeakerId;\n const mainParticipant = meeting?.mainParticipant;\n const pinState = meeting?.pinnedParticipants?.get(participantId) || {\n cam: false,\n share: false\n };\n\n // const micOn = meeting?.participants?.get(participantId).micOn || false;\n // const webcamOn = meeting?.participants?.get(participantId).webcamOn || false;\n\n return {\n participants,\n localParticipant,\n activeSpeakerId,\n mainParticipant,\n pinState\n };\n }, [meeting]);\n\n /**\n * @type {Participant}\n */\n const participant = participants?.get(participantId);\n\n const [webcamOn, setWebcamOn] = useState(participant?.webcamOn);\n const [micOn, setMicOn] = useState(participant?.micOn);\n const [mode, setMode] = useState(participant?.mode);\n\n const setTrack = stream => {\n if (stream.track.readyState === 'live') {\n switch (stream.kind) {\n case 'video':\n if (webcamStream != null) {\n setwebcamStream(null);\n }\n setwebcamStream(stream);\n break;\n case 'audio':\n if (micStream != null) {\n setMicStream(null);\n }\n setMicStream(stream);\n break;\n case 'share':\n if (screenShareStream != null) {\n setScreenShareStream(null);\n }\n setScreenShareStream(stream);\n break;\n case 'shareAudio':\n if (screenShareAudioStream != null) {\n setScreenShareAudioStream(null);\n }\n setScreenShareAudioStream(stream);\n break;\n default:\n break;\n }\n }\n };\n\n const unSetTrack = stream => {\n if (stream.track.readyState !== 'live') {\n switch (stream.kind) {\n case 'video':\n setwebcamStream(null);\n break;\n case 'audio':\n setMicStream(null);\n break;\n case 'share':\n setScreenShareStream(null);\n break;\n case 'shareAudio':\n setScreenShareAudioStream(null);\n break;\n default:\n break;\n }\n }\n };\n\n const _handleStreamEnabled = stream => {\n setTrack(stream);\n onStreamEnabled(stream);\n };\n\n const _handleParticipantModeChanged = data => {\n console.log('## FINAL', data);\n if (participantId === data.participantId) {\n setMode(data.mode);\n }\n };\n\n const _handleStreamDisabled = stream => {\n unSetTrack(stream);\n onStreamDisabled(stream);\n };\n\n const _handleVideoQualityChanged = data => {\n const { peerId, prevQuality, currentQuality } = data;\n onVideoQualityChanged({ peerId, prevQuality, currentQuality });\n };\n\n const _handleMediaStatusChanged = data => {\n const { kind, peerId, newStatus } = data;\n if (kind == 'audio') {\n setMicOn(newStatus);\n } else if (kind == 'video') {\n setWebcamOn(newStatus);\n }\n onMediaStatusChanged({ kind, peerId, newStatus });\n };\n\n const setQuality = quality => {\n participant?.setQuality(quality);\n };\n\n const setViewPort = (width, height) => {\n participant?.setViewPort(width, height);\n };\n\n const enableMic = () => {\n participant?.enableMic();\n };\n const disableMic = () => {\n participant?.disableMic();\n };\n const enableWebcam = () => {\n participant?.enableWebcam();\n };\n const disableWebcam = () => {\n participant?.disableWebcam();\n };\n const pin = data => {\n participant?.pin(data);\n };\n const unpin = data => {\n participant?.unpin(data);\n };\n const getAudioStats = async () => {\n return participant?.getAudioStats();\n };\n const getVideoStats = async () => {\n return participant?.getVideoStats();\n };\n const getShareStats = async () => {\n return participant?.getShareStats();\n };\n\n const consumeWebcamStreams = () => {\n participant?.consumeWebcamStreams();\n };\n const consumeMicStreams = () => {\n participant?.consumeMicStreams();\n };\n const stopConsumingWebcamStreams = () => {\n participant?.stopConsumingWebcamStreams();\n };\n const stopConsumingMicStreams = () => {\n participant?.stopConsumingMicStreams();\n };\n const switchTo = async data => {\n await participant?.switchTo(data);\n };\n\n useEffect(() => {\n const streams = participant?.streams;\n\n if (streams) {\n streams.forEach(stream => {\n setTrack(stream);\n });\n }\n\n if (participant?.micOn) {\n setMicOn(micOn);\n }\n\n if (participant?.webcamOn) {\n setWebcamOn(webcamOn);\n }\n\n participant?.on('stream-enabled', _handleStreamEnabled);\n\n participant?.on('stream-disabled', _handleStreamDisabled);\n\n participant?.on('media-status-changed', _handleMediaStatusChanged);\n\n participant?.on('video-quality-changed', _handleVideoQualityChanged);\n\n eventEmitter.on(\n events['participant-mode-changed'],\n _handleParticipantModeChanged\n );\n\n return () => {\n participant?.off('stream-enabled', _handleStreamEnabled);\n\n participant?.off('stream-disabled', _handleStreamDisabled);\n\n participant?.off('media-status-changed', _handleMediaStatusChanged);\n\n participant?.off('video-quality-changed', _handleVideoQualityChanged);\n\n eventEmitter.off(\n events['participant-mode-changed'],\n _handleParticipantModeChanged\n );\n };\n }, [participant]);\n\n return {\n displayName: participant?.displayName,\n participant,\n webcamStream,\n micStream,\n screenShareStream,\n screenShareAudioStream,\n webcamOn: webcamOn || !!webcamStream,\n micOn: micOn || !!micStream,\n mode: mode,\n\n screenShareOn: !!screenShareStream,\n isLocal: localParticipant?.id === participantId,\n isActiveSpeaker: activeSpeakerId === participantId,\n isMainParticipant: mainParticipant?.id === participantId,\n pinState,\n\n //\n consumeMicStreams,\n consumeWebcamStreams,\n stopConsumingMicStreams,\n stopConsumingWebcamStreams,\n setQuality,\n setViewPort,\n enableMic,\n disableMic,\n enableWebcam,\n disableWebcam,\n pin,\n unpin,\n switchTo,\n getAudioStats,\n getVideoStats,\n getShareStats\n };\n};\n\nexport default useParticipant;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n/**\n *\n * @param {string} connectionId\n * @param {{onMeeting:{\n * onParticipantJoined?: Function,\n * onParticipantLeft?: Function,\n * onChatMessage?: Function\n * }}}\n * @returns {{\n * connection: {\n * id: string;\n * close: Function;\n * payload: string;\n * meeting: {\n * id: string;\n * sendChatMessage: Function;\n * end: Function;\n * participants: Array<ConnectionParticipant>;\n * };\n * }}}\n */\nconst useConnection = (\n connectionId,\n { onMeeting } = {\n onMeeting: {\n onParticipantJoined: () => {},\n onParticipantLeft: () => {},\n onChatMessage: () => {}\n }\n }\n) => {\n const onParticipantJoined = onMeeting?.onParticipantJoined;\n const onParticipantLeft = onMeeting?.onParticipantLeft;\n const onChatMessage = onMeeting?.onChatMessage;\n\n const meeting = useMeeting();\n\n const { connection, connectionParticipants } = useMemo(() => {\n const connection = meeting?.connections.get(connectionId);\n\n if (!connection) {\n throw new Error('connectionId not found');\n }\n\n const connectionParticipants = new Map(connection.meeting.participants);\n\n return {\n connection,\n connectionParticipants\n };\n }, [meeting]);\n\n const [_connectionParticipants, setConnectionParticipants] = useState(\n new Map(connectionParticipants)\n );\n\n const _handleParticipantJoined = participant => {\n setConnectionParticipants(s => {\n s.set(participant.id, participant);\n const participantsToSet = new Map(s);\n return participantsToSet;\n });\n onParticipantJoined(participant);\n };\n const _handleParticipantLeft = participantId => {\n setConnectionParticipants(s => {\n s.delete(participantId);\n const newParticipants = new Map(s);\n return newParticipants;\n });\n onParticipantLeft(participantId);\n };\n\n const _handleChatMessage = data => {\n onChatMessage(data);\n };\n\n useEffect(() => {\n connection?.meeting.on('participant-joined', _handleParticipantJoined);\n connection?.meeting.on('participant-left', _handleParticipantLeft);\n connection?.meeting.on('chat-message', _handleChatMessage);\n\n return () => {\n connection?.meeting.off('participant-joined', _handleParticipantJoined);\n connection?.meeting.off('participant-left', _handleParticipantLeft);\n connection?.meeting.off('chat-message', _handleChatMessage);\n };\n }, [connection]);\n\n return {\n connection: {\n id: connection.id,\n close: connection.close,\n payload: connection.payload,\n meeting: {\n id: connection.meeting.id,\n sendChatMessage: connection.meeting.sendChatMessage,\n end: connection.meeting.end,\n participants: _connectionParticipants\n }\n }\n };\n};\n\nexport default useConnection;\n","import { useEffect, useRef, useState } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n\n/**\n *\n * @param {string} topic\n * @param {{\n * onMessageReceived?: Function,\n * onOldMessagesReceived?: Function,\n * }} options\n * @returns {{\n * publish: (message: string,{persist: boolean}) => void\n * messages: Array<{\n * id: string,\n * message: string,\n * senderId: string,\n * senderName: string,\n * timestamp: string,\n * topic: string\n * }>\n * }}\n */\nconst usePubSub = (\n topic,\n { onMessageReceived = () => {}, onOldMessagesReceived = () => {} } = {}\n) => {\n const { meeting, isMeetingJoined } = useMeeting();\n const [messages, setMessages] = useState([]);\n const isSubscribed = useRef(false);\n\n /**\n *\n * @param {string} message\n * @param {{persist: boolean}} options\n */\n const publish = (message, options) => {\n if (meeting) {\n meeting.pubSub.publish(topic, message, options);\n }\n };\n\n const _handlePubSub = data => {\n setMessages(s => [...s, data]);\n onMessageReceived(data);\n };\n\n const subscribeToPubsub = async meeting => {\n const data = await meeting?.pubSub?.subscribe(topic, _handlePubSub);\n if (data) {\n onOldMessagesReceived(data.messages);\n setMessages(data.messages);\n }\n };\n\n useEffect(() => {\n if (meeting && !isSubscribed.current && isMeetingJoined) {\n isSubscribed.current = true;\n subscribeToPubsub(meeting);\n\n return () => {\n meeting?.pubSub?.unsubscribe(topic, _handlePubSub);\n };\n }\n }, [meeting, isMeetingJoined]);\n\n return { publish, messages };\n};\n\nexport default usePubSub;\n","import MeetingProvider from './meeting/MeetingProvider';\nimport {\n MeetingConsumer,\n useMeeting\n} from './meeting/meetingProviderContextDef';\nimport useParticipant from './participant/useParticipant';\nimport useConnection from './connection/useConnection';\nimport usePubSub from './pubSub/usePubSub';\nimport { VideoSDK } from '@videosdk.live/js-sdk';\n\nconst Constants = VideoSDK.Constants;\n\n/**\n * @param {{\n * cameraId?: string | undefined,\n * encoderConfig?: \"h90p_w160p\" | \"h180p_w320p\" | \"h216p_w384p\"\n * | \"h360p_w640p\" | \"h540p_w960p\" | \"h720p_w1280p\" | \"h1080p_w1920p\"\n * | \"h1440p_w2560p\" | \"h2160p_w3840p\" | \"h120p_w160p\" | \"h180p_w240p\"\n * | \"h240p_w320p\" | \"h360p_w480p\" | \"h480p_w640p\" | \"h540p_w720p\"\n * | \"h720p_w960p\" | \"h1080p_w1440p\" | \"h1440p_w1920p\" | undefined,\n * facingMode?: \"front\" | \"environment\" | undefined,\n * optimizationMode?: \"text\"| \"motion\" | \"detail\" | undefined\n * multiStream?: boolean\n * }}\n */\nconst createCameraVideoTrack = async ({\n cameraId = undefined,\n encoderConfig = undefined,\n facingMode = undefined,\n optimizationMode = undefined,\n multiStream = true\n}) => {\n return await VideoSDK.createCameraVideoTrack({\n cameraId,\n encoderConfig,\n facingMode,\n optimizationMode,\n multiStream\n });\n};\n\n/**\n * @param {{\n * encoderConfig?: \"h360p_30fps\" | \"h720p_5fps\" | \"h720p_15fps\"\n * | \"h1080p_15fps\" | \"h1080p_30fps\" | undefined,\n * optimizationMode?: \"text\"| \"motion\" | \"detail\" | undefined,\n * withAudio?:\"enable\" | \"disable\"\n * }}\n */\nconst createScreenShareVideoTrack = async ({\n encoderConfig = undefined,\n optimizationMode = undefined,\n withAudio = 'enable'\n}) => {\n return await VideoSDK.createScreenShareVideoTrack({\n encoderConfig,\n optimizationMode,\n withAudio\n });\n};\n\n/**\n * @param {{\n * noiseConfig?: {\n * echoCancellation: boolean,\n * autoGainControl: boolean,\n * noiseSuppression: boolean\n * } | undefined,\n * encoderConfig?: \"speech_low_quality\"\n * | \"speech_standard\" | \"music_standard\"\n * | \"standard_stereo\" | \"high_quality\"\n * | \"high_quality_stereo\" | undefined\n * microphoneId?: string | undefined\n * }}\n */\nconst createMicrophoneAudioTrack = async ({\n noiseConfig = undefined,\n encoderConfig = undefined,\n microphoneId = undefined\n}) => {\n return await VideoSDK.createMicrophoneAudioTrack({\n noiseConfig,\n encoderConfig,\n microphoneId\n });\n};\n\nexport {\n MeetingProvider,\n useMeeting,\n useParticipant,\n usePubSub,\n MeetingConsumer,\n useConnection,\n Constants,\n createCameraVideoTrack,\n createMicrophoneAudioTrack,\n createScreenShareVideoTrack\n};\n"],"names":["eventPrifix","events","error","eventEmitter","EventEmitter","setMaxListeners","MeetingProviderContex","createContext","useMeeting","onParticipantJoined","onParticipantLeft","onSpeakerChanged","onPresenterChanged","onMainParticipantChanged","onEntryRequested","onEntryResponded","onRecordingStarted","onRecordingStopped","onChatMessage","onMeetingJoined","onMeetingLeft","onLiveStreamStarted","onLiveStreamStopped","onVideoStateChanged","onVideoSeeked","onWebcamRequested","onMicRequested","onPinStateChanged","onConnectionOpen","onConnetionClose","onSwitchMeeting","onError","onHlsStarted","onHlsStopped","onHlsStateChanged","onRecordingStateChanged","onLivestreamStateChanged","onMeetingStateChanged","onParticipantModeChanged","useEffect","on","off","useContext","MeetingConsumer","children","React","MeetingProvider","config","token","joinWithoutUserInteraction","_reinitialiseMeetingOnConfigChange","reinitialiseMeetingOnConfigChange","deviceInfo","useState","meeting","setMeeting","localParticipant","setLocalParticipant","mainParticipant","setMainParticipant","activeSpeakerId","setActiveSpeakerId","presenterId","setPresenterId","localMicOn","setLocalMicOn","localWebcamOn","setLocalWebcamOn","localScreenShareOn","setLocalScreenShareOn","isRecording","setIsRecording","messages","setMessages","Map","participants","setParticipants","pinnedParticipants","setPinnedParticipants","isLiveStreaming","setIsLiveStreaming","connections","setConnections","isMeetingJoined","setIsMeetingJoined","isHls","setIsHls","recordingState","setRecordingState","livestreamState","setLivestreamState","hlsState","setHlsState","meetingRef","useRef","localMicOnRef","localWebcamOnRef","localScreenShareOnRef","isRecordingRef","configRef","tokenRef","joinedOnFirstRender","isHlsRef","useMemo","current","resetStates","_handle_participant_joined","participant","set","id","participantsToSet","emit","_handle_participant_left","newParticipants","_handle_presenter_changed","_handle_main_participant_changed","_handle_speaker_changed","_handle_chat_message","data","s","_handle_entry_requested","_handle_entry_responded","participantId","decision","_handle_recording_started","_handle_recording_stopped","_handle_localParticipant_stream_enabled","stream","track","readyState","kind","_handle_localParticipant_stream_disabled","_handle_live_stream_started","_handle_live_stream_stopped","_handle_hls_started","_handle_hls_stopped","_handle_video_state_changed","_handle_video_seeked","_handle_webcam_requested","_handle_mic_requested","_handle_meeting_joined","_handle_meeting_left","_handle_meeting_state_changed","_handle_pin_state_changed","_handle_connection_open","_handle_connection_close","_handle_switch_meeting","_handle_error","_handle_recording_state_changed","_handle_livestream_state_changed","_handle_hls_state_changed","_handel_participant_mode_changed","state","pinnedBy","cam","share","pinnedParticipantsToSet","connection","connectionsToSet","connectionId","newConnections","d","status","part","get","mode","join","VideoSDK","initMeeting","leave","end","startRecording","webhookUrl","awsDirPath","stopRecording","unmuteMic","customAudioTrack","undefined","muteMic","toggleMic","disableWebcam","enableWebcam","customVideoTrack","toggleWebcam","disableScreenShare","enableScreenShare","customScreenShareTrack","toggleScreenShare","changeMode","sendChatMessage","text","respondEntry","getMics","getWebcams","changeWebcam","obj","changeMic","startVideo","link","stopVideo","resumeVideo","pauseVideo","currentTime","seekVideo","startLivestream","streamInfo","stopLivestream","connectTo","meetingId","payload","startHls","stopHls","initSDK","analytics","sdkType","sdkVersion","reactSDKVersion","baseUrl","useParticipant","onStreamEnabled","onStreamDisabled","onMediaStatusChanged","onVideoQualityChanged","webcamStream","setwebcamStream","micStream","setMicStream","screenShareStream","setScreenShareStream","screenShareAudioStream","setScreenShareAudioStream","pinState","webcamOn","setWebcamOn","micOn","setMicOn","setMode","setTrack","unSetTrack","_handleStreamEnabled","_handleParticipantModeChanged","console","log","_handleStreamDisabled","_handleVideoQualityChanged","peerId","prevQuality","currentQuality","_handleMediaStatusChanged","newStatus","setQuality","quality","setViewPort","width","height","enableMic","disableMic","pin","unpin","getAudioStats","getVideoStats","getShareStats","consumeWebcamStreams","consumeMicStreams","stopConsumingWebcamStreams","stopConsumingMicStreams","switchTo","streams","forEach","displayName","screenShareOn","isLocal","isActiveSpeaker","isMainParticipant","useConnection","onMeeting","Error","connectionParticipants","_connectionParticipants","setConnectionParticipants","_handleParticipantJoined","_handleParticipantLeft","_handleChatMessage","close","usePubSub","topic","onMessageReceived","onOldMessagesReceived","isSubscribed","publish","message","options","pubSub","_handlePubSub","subscribeToPubsub","subscribe","unsubscribe","Constants","createCameraVideoTrack","cameraId","encoderConfig","facingMode","optimizationMode","multiStream","createScreenShareVideoTrack","withAudio","createMicrophoneAudioTrack","noiseConfig","microphoneId"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils.js","../src/meeting/meetingProviderContextDef.js","../src/meeting/MeetingProvider.js","../src/participant/useParticipant.js","../src/connection/useConnection.js","../src/pubSub/usePubSub.js","../src/index.js"],"sourcesContent":["import EventEmitter from 'events';\n\nconst eventPrifix = 'videosdk-live-react-sdk';\n\nconst events = {\n 'participant-joined': `${eventPrifix}-participant-joined`,\n 'participant-left': `${eventPrifix}-participant-left`,\n 'speaker-changed': `${eventPrifix}-speaker-changed`,\n 'presenter-changed': `${eventPrifix}-presenter-changed`,\n 'main-participant-changed': `${eventPrifix}-main-participant-changed`,\n 'entry-requested': `${eventPrifix}-entry-requested`,\n 'entry-responded': `${eventPrifix}-entry-responded`,\n 'recording-started': `${eventPrifix}-recording-started`,\n 'recording-stopped': `${eventPrifix}-recording-stopped`,\n 'chat-message': `${eventPrifix}-chat-message`,\n 'meeting-joined': `${eventPrifix}-meeting-joined`,\n 'meeting-left': `${eventPrifix}-meeting-left`,\n 'live-stream-started': `${eventPrifix}-live-stream-started`,\n 'live-stream-stopped': `${eventPrifix}-live-stream-stopped`,\n 'video-state-changed': `${eventPrifix}-video-state-changed`,\n 'video-seeked': `${eventPrifix}-video-seeked`,\n 'webcam-requested': `${eventPrifix}-webcam-requested`,\n 'mic-requested': `${eventPrifix}-mic-requested`,\n 'pin-state-changed': `${eventPrifix}-pin-state-changed`,\n 'connection-open': `${eventPrifix}-connection-open`,\n 'connection-close': `${eventPrifix}-connection-close`,\n 'switch-meeting': `${eventPrifix}-switch-meeting`,\n error: `${eventPrifix}-error`,\n 'hls-started': `${eventPrifix}-hls-started`,\n 'hls-stopped': `${eventPrifix}-hls-stopped`,\n 'hls-state-changed': `${eventPrifix}-hls-state-changed`,\n 'recording-state-changed': `${eventPrifix}-recording-state-changed`,\n 'livestream-state-changed': `${eventPrifix}-livestream-state-changed`,\n 'meeting-state-changed': `${eventPrifix}-meeting-state-changed`,\n 'participant-mode-changed': `${eventPrifix}-participant-mode-changed`\n};\n\nconst eventEmitter = new EventEmitter();\neventEmitter.setMaxListeners(9999);\n\nexport { eventEmitter, events };\n","import React from 'react';\nimport { useContext, createContext, useEffect } from 'react';\nimport { eventEmitter, events } from '../utils';\nexport const MeetingProviderContex = createContext();\n\n/**\n *\n * @param {{\n * onParticipantJoined?: () => void;\n * onParticipantLeft?: () => void;\n * onSpeakerChanged?: () => void;\n * onPresenterChanged?: () => void;\n * onMainParticipantChanged?: () => void;\n * onEntryRequested?: () => void;\n * onEntryResponded?: () => void;\n * onRecordingStarted?: () => void;\n * onRecordingStopped?: () => void;\n * onChatMessage?: () => void;\n * onMeetingJoined?: () => void;\n * onMeetingLeft?: () => void;\n * onLiveStreamStarted?: () => void;\n * onLiveStreamStopped?: () => void;\n * onVideoStateChanged?: () => void;\n * onVideoSeeked?: () => void;\n * onWebcamRequested?: () => void;\n * onMicRequested?: () => void;\n * onPinStateChanged?: () => void;\n * onConnectionOpen?: () => void;\n * onConnetionClose?: () => void;\n * onSwitchMeeting?: () => void;\n * onError?: () => void;\n * onHlsStarted?: () => void;\n * onHlsStopped?: () => void;\n * onHlsStateChanged?: () => void;\n * onRecordingStateChanged?: () => void;\n * onLivestreamStateChanged?: () => void;\n * onMeetingStateChanged?: () => void;\n *}}\n * @returns {{\n * meetingId: string,\n * meeting: Meeting,\n * localParticipant: Participant,\n * activeSpeakerId: string,\n * participants: Map<string, Participant>,\n * pinnedParticipants: Map<string, {cam:boolean, share:boolean}>,\n * presenterId: string,\n * localMicOn: boolean,\n * localWebcamOn: boolean,\n * isRecording: boolean,\n * isLiveStreaming: boolean,\n * localScreenShareOn: boolean,\n * connections: Map<string, Connection>,\n * join: () => void\n * leave: () => void\n * end: () => void\n * enableMic: (customAudioTrack?: MediaStream | undefined) => void\n * disableMic: () => void\n * toggleMic: (customAudioTrack?: MediaStream | undefined) => void\n * enableWebcam: (customVideoTrack?: MediaStream | undefined) => void\n * disableWebcam: () => void\n * toggleWebcam: (customVideoTrack?: MediaStream | undefined) => void\n * enableScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * disableScreenShare: () => void\n * toggleScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * startRecording: (webhookUrl?: string, awsDirPath?: string, config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * };\n * }) => void\n * stopRecording: () => void\n * startLiveStream: (outputs: Array<{\n * url: string;\n * streamKey: string;\n * }>,\n * config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * };\n * }) => void\n * stopLiveStream: () => void\n * startHls: (config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * };\n * }) => void\n * stopHls: () => void\n * getMics: () => Promise<{\n * deviceId: string;\n * label: string;\n * }[]>void\n * getWebcams: () => Promise<{\n * deviceId: string;\n * label: string;\n * facingMode: \"environment\" | \"front\"\n * }[]>void\n * changeMic: (object: string | MediaStream) => void\n * changeWebcam: (object: string | MediaStream) => void\n * startVideo: ({ link }: {\n * link: string;\n * }) => void\n * stopVideo: () => void\n * pauseVideo: ({ currentTime }: {\n * currentTime: number;\n * }) => void\n * resumeVideo: () => void\n * seekVideo: ({ currentTime }: {\n * currentTime: number;\n * }) => void\n * connectTo: ({ meetingId, payload }: {\n * meetingId: string;\n * payload: string;\n * }) => void\n *\n * }}\n */\nexport const useMeeting = ({\n onParticipantJoined = () => {},\n onParticipantLeft = () => {},\n onSpeakerChanged = () => {},\n onPresenterChanged = () => {},\n onMainParticipantChanged = () => {},\n onEntryRequested = () => {},\n onEntryResponded = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onChatMessage = () => {},\n onMeetingJoined = () => {},\n onMeetingLeft = () => {},\n onLiveStreamStarted = () => {},\n onLiveStreamStopped = () => {},\n onVideoStateChanged = () => {},\n onVideoSeeked = () => {},\n onWebcamRequested = () => {},\n onMicRequested = () => {},\n onPinStateChanged = () => {},\n onConnectionOpen = () => {},\n onConnetionClose = () => {},\n onSwitchMeeting = () => {},\n onError = () => {},\n onHlsStarted = () => {},\n onHlsStopped = () => {},\n onHlsStateChanged = () => {},\n onRecordingStateChanged = () => {},\n onLivestreamStateChanged = () => {},\n onMeetingStateChanged = () => {},\n onParticipantModeChanged = () => {}\n} = {}) => {\n useEffect(() => {\n eventEmitter.on(events['participant-joined'], onParticipantJoined);\n eventEmitter.on(events['participant-left'], onParticipantLeft);\n eventEmitter.on(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.on(events['presenter-changed'], onPresenterChanged);\n eventEmitter.on(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.on(events['entry-requested'], onEntryRequested);\n eventEmitter.on(events['entry-responded'], onEntryResponded);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['chat-message'], onChatMessage);\n eventEmitter.on(events['meeting-joined'], onMeetingJoined);\n eventEmitter.on(events['meeting-left'], onMeetingLeft);\n eventEmitter.on(events['live-stream-started'], onLiveStreamStarted);\n eventEmitter.on(events['live-stream-stopped'], onLiveStreamStopped);\n eventEmitter.on(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.on(events['video-seeked'], onVideoSeeked);\n eventEmitter.on(events['webcam-requested'], onWebcamRequested);\n eventEmitter.on(events['mic-requested'], onMicRequested);\n eventEmitter.on(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.on(events['connection-open'], onConnectionOpen);\n eventEmitter.on(events['connection-close'], onConnetionClose);\n eventEmitter.on(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.on(events['error'], onError);\n eventEmitter.on(events['hls-started'], onHlsStarted);\n eventEmitter.on(events['hls-stopped'], onHlsStopped);\n eventEmitter.on(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.on(events['recording-state-changed'], onRecordingStateChanged);\n eventEmitter.on(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.on(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n\n return () => {\n eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.off(events['participant-joined'], onParticipantJoined);\n eventEmitter.off(events['participant-left'], onParticipantLeft);\n eventEmitter.off(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.off(events['presenter-changed'], onPresenterChanged);\n eventEmitter.off(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.off(events['entry-requested'], onEntryRequested);\n eventEmitter.off(events['entry-responded'], onEntryResponded);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['chat-message'], onChatMessage);\n eventEmitter.off(events['meeting-joined'], onMeetingJoined);\n eventEmitter.off(events['meeting-left'], onMeetingLeft);\n eventEmitter.off(events['live-stream-started'], onLiveStreamStarted);\n eventEmitter.off(events['live-stream-stopped'], onLiveStreamStopped);\n eventEmitter.off(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.off(events['video-seeked'], onVideoSeeked);\n eventEmitter.off(events['webcam-requested'], onWebcamRequested);\n eventEmitter.off(events['mic-requested'], onMicRequested);\n eventEmitter.off(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.off(events['connection-open'], onConnectionOpen);\n eventEmitter.off(events['connection-close'], onConnetionClose);\n eventEmitter.off(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.off(events['error'], onError);\n eventEmitter.off(events['hls-started'], onHlsStarted);\n eventEmitter.off(events['hls-stopped'], onHlsStopped);\n eventEmitter.off(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.off(\n events['recording-state-changed'],\n onRecordingStateChanged\n );\n eventEmitter.off(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.off(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n };\n }, []);\n return useContext(MeetingProviderContex);\n};\n\nexport const MeetingConsumer = ({\n children,\n onParticipantJoined = () => {},\n onParticipantLeft = () => {},\n onSpeakerChanged = () => {},\n onPresenterChanged = () => {},\n onMainParticipantChanged = () => {},\n onEntryRequested = () => {},\n onEntryResponded = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onChatMessage = () => {},\n onMeetingJoined = () => {},\n onMeetingLeft = () => {},\n onLiveStreamStarted = () => {},\n onLiveStreamStopped = () => {},\n onVideoStateChanged = () => {},\n onVideoSeeked = () => {},\n onWebcamRequested = () => {},\n onMicRequested = () => {},\n onPinStateChanged = () => {},\n onConnectionOpen = () => {},\n onConnetionClose = () => {},\n onSwitchMeeting = () => {},\n onError = () => {},\n onHlsStarted = () => {},\n onHlsStopped = () => {},\n onHlsStateChanged = () => {},\n onRecordingStateChanged = () => {},\n onLivestreamStateChanged = () => {},\n onMeetingStateChanged = () => {},\n onParticipantModeChanged = () => {}\n}) => {\n useEffect(() => {\n eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.on(events['participant-joined'], onParticipantJoined);\n eventEmitter.on(events['participant-left'], onParticipantLeft);\n eventEmitter.on(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.on(events['presenter-changed'], onPresenterChanged);\n eventEmitter.on(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.on(events['entry-requested'], onEntryRequested);\n eventEmitter.on(events['entry-responded'], onEntryResponded);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['chat-message'], onChatMessage);\n eventEmitter.on(events['meeting-joined'], onMeetingJoined);\n eventEmitter.on(events['meeting-left'], onMeetingLeft);\n eventEmitter.on(events['live-stream-enabled'], onLiveStreamStarted);\n eventEmitter.on(events['live-stream-disabled'], onLiveStreamStopped);\n eventEmitter.on(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.on(events['video-seeked'], onVideoSeeked);\n eventEmitter.on(events['webcam-requested'], onWebcamRequested);\n eventEmitter.on(events['mic-requested'], onMicRequested);\n eventEmitter.on(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.on(events['connection-open'], onConnectionOpen);\n eventEmitter.on(events['connection-close'], onConnetionClose);\n eventEmitter.on(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.on(events['error'], onError);\n eventEmitter.on(events['hls-started'], onHlsStarted);\n eventEmitter.on(events['hls-stopped'], onHlsStopped);\n eventEmitter.on(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.on(events['recording-state-changed'], onRecordingStateChanged);\n eventEmitter.on(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.on(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n\n return () => {\n eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.off(events['participant-joined'], onParticipantJoined);\n eventEmitter.off(events['participant-left'], onParticipantLeft);\n eventEmitter.off(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.off(events['presenter-changed'], onPresenterChanged);\n eventEmitter.off(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.off(events['entry-requested'], onEntryRequested);\n eventEmitter.off(events['entry-responded'], onEntryResponded);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['chat-message'], onChatMessage);\n eventEmitter.off(events['meeting-joined'], onMeetingJoined);\n eventEmitter.off(events['meeting-left'], onMeetingLeft);\n eventEmitter.off(events['live-stream-enabled'], onLiveStreamStarted);\n eventEmitter.off(events['live-stream-disabled'], onLiveStreamStopped);\n eventEmitter.off(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.off(events['video-seeked'], onVideoSeeked);\n eventEmitter.off(events['webcam-requested'], onWebcamRequested);\n eventEmitter.off(events['mic-requested'], onMicRequested);\n eventEmitter.off(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.off(events['connection-open'], onConnectionOpen);\n eventEmitter.off(events['connection-close'], onConnetionClose);\n eventEmitter.off(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.off(events['error'], onError);\n eventEmitter.off(events['hls-started'], onHlsStarted);\n eventEmitter.off(events['hls-stopped'], onHlsStopped);\n eventEmitter.off(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.off(\n events['recording-state-changed'],\n onRecordingStateChanged\n );\n eventEmitter.off(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.off(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n };\n }, []);\n\n return (\n <React.Fragment>\n <MeetingProviderContex.Consumer>\n {children}\n </MeetingProviderContex.Consumer>\n </React.Fragment>\n );\n};\n","import { MeetingProviderContex } from './meetingProviderContextDef';\nimport React, { useEffect, useRef, useState, useMemo } from 'react';\nimport { eventEmitter, events } from '../utils';\nimport { VideoSDK } from '@videosdk.live/js-sdk';\nimport { version as reactSDKVersion } from '../../package.json';\n\n/**\n *\n * @param {{\n * children:any,\n * config:{\n * meetingId: string,\n * autoConsume?: boolean,\n * preferredProtocol?:\"UDP_ONLY\" | \"UDP_OVER_TCP\",\n * participantId?:string | undefined,\n * name:string,\n * micEnabled:boolean,\n * webcamEnabled:boolean,\n * maxResolution?:\"hd\" | \"sd\",\n * customCameraVideoTrack?: MediaStream | undefined\n * customMicrophoneAudioTrack?: MediaStream | undefined,\n * multiStream?: boolean,\n * mode?: \"CONFERENCE\" | \"VIEWER\",\n * },\n * token: string,\n * joinWithoutUserInteraction?: boolean,\n * reinitialiseMeetingOnConfigChange?: boolean,\n * deviceInfo?: object\n * }}\n *\n */\nconst MeetingProvider = ({\n children,\n config,\n token,\n joinWithoutUserInteraction,\n reinitialiseMeetingOnConfigChange: _reinitialiseMeetingOnConfigChange,\n deviceInfo\n}) => {\n const [meeting, setMeeting] = useState(null);\n const [localParticipant, setLocalParticipant] = useState(null);\n const [mainParticipant, setMainParticipant] = useState(null);\n const [activeSpeakerId, setActiveSpeakerId] = useState(null);\n const [presenterId, setPresenterId] = useState(null);\n const [localMicOn, setLocalMicOn] = useState(false);\n const [localWebcamOn, setLocalWebcamOn] = useState(false);\n const [localScreenShareOn, setLocalScreenShareOn] = useState(false);\n const [isRecording, setIsRecording] = useState(false);\n const [messages, setMessages] = useState([]);\n const [participants, setParticipants] = useState(new Map());\n const [pinnedParticipants, setPinnedParticipants] = useState(new Map());\n const [isLiveStreaming, setIsLiveStreaming] = useState(false);\n const [connections, setConnections] = useState(new Map());\n const [isMeetingJoined, setIsMeetingJoined] = useState(false);\n const [isHls, setIsHls] = useState(false);\n const [recordingState, setRecordingState] = useState(null);\n const [livestreamState, setLivestreamState] = useState(null);\n const [hlsState, setHlsState] = useState(null);\n\n const meetingRef = useRef();\n const localMicOnRef = useRef();\n const localWebcamOnRef = useRef();\n const localScreenShareOnRef = useRef();\n const isRecordingRef = useRef();\n const configRef = useRef(config);\n const tokenRef = useRef(token);\n const joinedOnFirstRender = useRef(false);\n const isHlsRef = useRef();\n\n const reinitialiseMeetingOnConfigChange = useMemo(\n () => _reinitialiseMeetingOnConfigChange,\n []\n );\n\n useEffect(() => {\n meetingRef.current = meeting;\n }, [meeting]);\n useEffect(() => {\n localMicOnRef.current = localMicOn;\n }, [localMicOn]);\n useEffect(() => {\n localWebcamOnRef.current = localWebcamOn;\n }, [localWebcamOn]);\n useEffect(() => {\n localScreenShareOnRef.current = localScreenShareOn;\n }, [localScreenShareOn]);\n useEffect(() => {\n isRecordingRef.current = isRecording;\n }, [isRecording]);\n useEffect(() => {\n configRef.current = config;\n }, [config]);\n useEffect(() => {\n tokenRef.current = token;\n }, [token]);\n useEffect(() => {\n isHlsRef.current = isHls;\n }, [isHls]);\n\n const resetStates = () => {\n setMeeting(null);\n setLocalParticipant(null);\n setMainParticipant(null);\n setActiveSpeakerId(null);\n setPresenterId(null);\n setLocalMicOn(false);\n setLocalWebcamOn(false);\n setLocalScreenShareOn(false);\n setIsRecording(false);\n setMessages([]);\n setIsLiveStreaming(false);\n setParticipants(new Map());\n setPinnedParticipants(new Map());\n setConnections(new Map());\n setIsMeetingJoined(false);\n setIsHls(false);\n setRecordingState(null);\n setLivestreamState(null);\n setHlsState(null);\n };\n\n const _handle_participant_joined = participant => {\n setParticipants(participants => {\n participants.set(participant.id, participant);\n const participantsToSet = new Map(participants);\n return participantsToSet;\n });\n eventEmitter.emit(events['participant-joined'], participant);\n };\n const _handle_participant_left = participant => {\n setParticipants(participants => {\n participants.delete(participant.id);\n\n const newParticipants = new Map(participants);\n return newParticipants;\n });\n eventEmitter.emit(events['participant-left'], participant);\n };\n const _handle_presenter_changed = presenterId => {\n setPresenterId(presenterId);\n setLocalScreenShareOn(\n presenterId === meetingRef?.current?.localParticipant?.id\n );\n eventEmitter.emit(events['presenter-changed'], presenterId);\n };\n const _handle_main_participant_changed = participant => {\n setMainParticipant(participant);\n eventEmitter.emit(events['main-participant-changed'], participant);\n };\n const _handle_speaker_changed = activeSpeakerId => {\n setActiveSpeakerId(activeSpeakerId);\n eventEmitter.emit(events['speaker-changed'], activeSpeakerId);\n };\n const _handle_chat_message = data => {\n setMessages(s => [...s, data]);\n\n eventEmitter.emit(events['chat-message'], data);\n };\n const _handle_entry_requested = data => {\n eventEmitter.emit(events['entry-requested'], data);\n };\n const _handle_entry_responded = (participantId, decision) => {\n eventEmitter.emit(events['entry-responded'], participantId, decision);\n };\n const _handle_recording_started = () => {\n setIsRecording(true);\n eventEmitter.emit(events['recording-started']);\n };\n const _handle_recording_stopped = () => {\n setIsRecording(false);\n eventEmitter.emit(events['recording-stopped']);\n };\n\n const _handle_localParticipant_stream_enabled = stream => {\n if (stream.track.readyState === 'live') {\n if (stream.kind === 'video') {\n setLocalWebcamOn(true);\n } else if (stream.kind === 'audio') {\n setLocalMicOn(true);\n }\n }\n };\n const _handle_localParticipant_stream_disabled = stream => {\n if (stream.track.readyState === 'ended') {\n if (stream.kind === 'video') {\n setLocalWebcamOn(false);\n } else if (stream.kind === 'audio') {\n setLocalMicOn(false);\n }\n }\n };\n\n const _handle_live_stream_started = data => {\n setIsLiveStreaming(true);\n eventEmitter.emit(events['live-stream-started'], data);\n };\n const _handle_live_stream_stopped = () => {\n setIsLiveStreaming(false);\n eventEmitter.emit(events['live-stream-stopped']);\n };\n const _handle_hls_started = data => {\n setIsHls(true);\n eventEmitter.emit(events['hls-started'], data);\n };\n const _handle_hls_stopped = () => {\n setIsHls(false);\n eventEmitter.emit(events['hls-stopped']);\n };\n const _handle_video_state_changed = data => {\n eventEmitter.emit(events['video-state-changed'], data);\n };\n const _handle_video_seeked = data => {\n eventEmitter.emit(events['video-seeked'], data);\n };\n\n const _handle_webcam_requested = data => {\n eventEmitter.emit(events['webcam-requested'], data);\n };\n\n const _handle_mic_requested = data => {\n eventEmitter.emit(events['mic-requested'], data);\n };\n\n const _handle_meeting_joined = data => {\n joinedOnFirstRender.current = true;\n setMessages(s => [...s, ...data.messages]);\n eventEmitter.emit(events['meeting-joined'], data);\n setIsMeetingJoined(true);\n };\n\n const _handle_meeting_left = () => {\n eventEmitter.emit(events['meeting-left']);\n\n const meeting = meetingRef.current;\n\n if (meeting) {\n if (typeof meeting?.off === 'function') {\n meeting.off('meeting-state-changed', _handle_meeting_state_changed);\n meeting.off('participant-joined', _handle_participant_joined);\n meeting.off('participant-left', _handle_participant_left);\n meeting.off('presenter-changed', _handle_presenter_changed);\n meeting.off(\n 'main-participant-changed',\n _handle_main_participant_changed\n );\n meeting.off('speaker-changed', _handle_speaker_changed);\n meeting.off('entry-requested', _handle_entry_requested);\n meeting.off('entry-responded', _handle_entry_responded);\n meeting.off('chat-message', _handle_chat_message);\n meeting.off('recording-started', _handle_recording_started);\n meeting.off('recording-stopped', _handle_recording_stopped);\n meeting.off('meeting-joined', _handle_meeting_joined);\n meeting.off('meeting-left', _handle_meeting_left);\n meeting.off('livestream-started', _handle_live_stream_started);\n meeting.off('livestream-stopped', _handle_live_stream_stopped);\n meeting.off('video-state-changed', _handle_video_state_changed);\n meeting.off('video-seeked', _handle_video_seeked);\n meeting.off('webcam-requested', _handle_webcam_requested);\n meeting.off('mic-requested', _handle_mic_requested);\n meeting.off('pin-state-changed', _handle_pin_state_changed);\n meeting.off('connection-open', _handle_connection_open);\n meeting.off('connection-close', _handle_connection_close);\n meeting.off('switch-meeting', _handle_switch_meeting);\n meeting.off('error', _handle_error);\n meeting.off('hls-started', _handle_hls_started);\n meeting.off('hls-stopped', _handle_hls_stopped);\n meeting.off('recording-state-changed', _handle_recording_state_changed);\n meeting.off(\n 'livestream-state-changed',\n _handle_livestream_state_changed\n );\n meeting.off('hls-state-changed', _handle_hls_state_changed);\n meeting.off(\n 'participant-mode-changed',\n _handel_participant_mode_changed\n );\n }\n\n if (typeof meeting?.localParticipant?.off === 'function') {\n meeting.localParticipant.off(\n 'stream-enabled',\n _handle_localParticipant_stream_enabled\n );\n\n meeting.localParticipant.off(\n 'stream-disabled',\n _handle_localParticipant_stream_disabled\n );\n }\n\n resetStates();\n }\n };\n\n const _handle_pin_state_changed = ({ participantId, state, pinnedBy }) => {\n setPinnedParticipants(pinnedParticipants => {\n if (!state.cam && !state.share) {\n pinnedParticipants.delete(participantId);\n } else {\n pinnedParticipants.set(participantId, state);\n }\n\n const pinnedParticipantsToSet = new Map(pinnedParticipants);\n\n return pinnedParticipantsToSet;\n });\n\n eventEmitter.emit(events['pin-state-changed'], {\n participantId,\n state,\n pinnedBy\n });\n };\n\n const _handle_connection_open = connection => {\n setConnections(s => {\n s.set(connection.id, connection);\n const connectionsToSet = new Map(s);\n return connectionsToSet;\n });\n eventEmitter.emit(events['connection-open'], connection);\n };\n\n const _handle_connection_close = connectionId => {\n setConnections(s => {\n s.delete(connectionId);\n const newConnections = new Map(s);\n return newConnections;\n });\n eventEmitter.emit(events['connection-close'], connectionId);\n };\n\n const _handle_switch_meeting = d => {\n eventEmitter.emit(events['switch-meeting'], d);\n };\n const _handle_error = data => {\n eventEmitter.emit(events['error'], data);\n };\n\n const _handle_recording_state_changed = data => {\n setRecordingState(data?.status);\n eventEmitter.emit(events['recording-state-changed'], data);\n };\n const _handle_livestream_state_changed = data => {\n setLivestreamState(data?.status);\n eventEmitter.emit(events['livestream-state-changed'], data);\n };\n const _handle_hls_state_changed = data => {\n setHlsState(data?.status);\n eventEmitter.emit(events['hls-state-changed'], data);\n };\n\n const _handle_meeting_state_changed = data => {\n eventEmitter.emit(events['meeting-state-changed'], data);\n };\n\n const _handel_participant_mode_changed = data => {\n setParticipants(participants => {\n const part = participants.get(data.participantId);\n part.mode = data.mode;\n participants.set(part.id, part);\n return participants;\n });\n\n // Update Local Participant Object\n if (data.participantId === meetingRef?.current?.localParticipant?.id) {\n setLocalParticipant(participant => {\n participant.mode = data.mode;\n return participant;\n });\n }\n\n eventEmitter.emit(events['participant-mode-changed'], data);\n };\n\n const join = () => {\n const meeting = VideoSDK && VideoSDK.initMeeting(configRef.current);\n setMeeting(meeting);\n const { localParticipant, participants } = meeting;\n participants.set(localParticipant.id, localParticipant);\n setParticipants(participants);\n setLocalParticipant(localParticipant);\n meeting.on('meeting-state-changed', _handle_meeting_state_changed);\n meeting.on('participant-joined', _handle_participant_joined);\n meeting.on('participant-left', _handle_participant_left);\n meeting.on('presenter-changed', _handle_presenter_changed);\n meeting.on('main-participant-changed', _handle_main_participant_changed);\n meeting.on('speaker-changed', _handle_speaker_changed);\n meeting.on('entry-requested', _handle_entry_requested);\n meeting.on('entry-responded', _handle_entry_responded);\n meeting.on('chat-message', _handle_chat_message);\n meeting.on('recording-started', _handle_recording_started);\n meeting.on('recording-stopped', _handle_recording_stopped);\n meeting.on('meeting-joined', _handle_meeting_joined);\n meeting.on('meeting-left', _handle_meeting_left);\n meeting.on('livestream-started', _handle_live_stream_started);\n meeting.on('livestream-stopped', _handle_live_stream_stopped);\n meeting.on('video-state-changed', _handle_video_state_changed);\n meeting.on('video-seeked', _handle_video_seeked);\n meeting.on('webcam-requested', _handle_webcam_requested);\n meeting.on('mic-requested', _handle_mic_requested);\n meeting.on('pin-state-changed', _handle_pin_state_changed);\n\n meeting.on('connection-open', _handle_connection_open);\n meeting.on('connection-close', _handle_connection_close);\n meeting.on('switch-meeting', _handle_switch_meeting);\n meeting.on('error', _handle_error);\n meeting.on('hls-started', _handle_hls_started);\n meeting.on('hls-stopped', _handle_hls_stopped);\n meeting.on('recording-state-changed', _handle_recording_state_changed);\n meeting.on('livestream-state-changed', _handle_livestream_state_changed);\n meeting.on('hls-state-changed', _handle_hls_state_changed);\n meeting.on('participant-mode-changed', _handel_participant_mode_changed);\n\n meeting.localParticipant.on(\n 'stream-enabled',\n _handle_localParticipant_stream_enabled\n );\n meeting.localParticipant.on(\n 'stream-disabled',\n _handle_localParticipant_stream_disabled\n );\n meeting.join();\n };\n\n const leave = () => {\n const meeting = meetingRef.current;\n\n if (meeting) {\n meeting.leave();\n }\n };\n\n const end = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.end();\n }\n };\n const startRecording = (webhookUrl, awsDirPath, config) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startRecording(webhookUrl, awsDirPath, config);\n }\n };\n const stopRecording = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n const isRecording = isRecordingRef.current;\n if (isRecording) {\n meeting.stopRecording();\n }\n }\n };\n const unmuteMic = (customAudioTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.unmuteMic(customAudioTrack);\n }\n };\n const muteMic = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.muteMic();\n }\n };\n const toggleMic = (customAudioTrack = undefined) => {\n const localMicOn = localMicOnRef.current;\n\n if (localMicOn) {\n muteMic();\n } else {\n unmuteMic(customAudioTrack);\n }\n };\n const disableWebcam = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableWebcam();\n }\n };\n const enableWebcam = (customVideoTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableWebcam(customVideoTrack);\n }\n };\n const toggleWebcam = (customVideoTrack = undefined) => {\n const localWebcamOn = localWebcamOnRef.current;\n\n if (localWebcamOn) {\n disableWebcam();\n } else {\n enableWebcam(customVideoTrack);\n }\n };\n const disableScreenShare = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableScreenShare();\n }\n };\n const enableScreenShare = (customScreenShareTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableScreenShare(customScreenShareTrack);\n }\n };\n\n const toggleScreenShare = (customScreenShareTrack = undefined) => {\n const localScreenShareOn = localScreenShareOnRef.current;\n\n if (localScreenShareOn) {\n disableScreenShare();\n } else {\n enableScreenShare(customScreenShareTrack);\n }\n };\n\n const changeMode = mode => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeMode(mode);\n }\n };\n\n const sendChatMessage = text => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.sendChatMessage(text);\n }\n };\n const respondEntry = (participantId, decision) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.respondEntry(participantId, decision);\n }\n };\n const getMics = async () => {\n const meeting = meetingRef.current;\n if (meeting) {\n return await meeting.getMics();\n }\n };\n const getWebcams = async () => {\n const meeting = meetingRef.current;\n if (meeting) {\n return await meeting.getWebcams();\n }\n };\n const changeWebcam = obj => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeWebcam(obj);\n }\n };\n const changeMic = obj => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeMic(obj);\n }\n };\n const startVideo = ({ link }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startVideo({ link });\n }\n };\n\n const stopVideo = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopVideo();\n }\n };\n\n const resumeVideo = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.resumeVideo();\n }\n };\n\n const pauseVideo = ({ currentTime }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.pauseVideo({ currentTime });\n }\n };\n\n const seekVideo = ({ currentTime }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.seekVideo({ currentTime });\n }\n };\n\n const startLivestream = (streamInfo, config) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startLivestream(streamInfo, config);\n }\n };\n\n const stopLivestream = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopLivestream();\n }\n };\n\n const connectTo = async ({ meetingId, payload }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n await meeting.connectTo({ meetingId, payload });\n }\n };\n\n const startHls = config => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startHls(config);\n }\n };\n\n const stopHls = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopHls();\n }\n };\n\n const initSDK = () => {\n VideoSDK.config(tokenRef.current);\n\n if (deviceInfo) {\n VideoSDK.analytics(deviceInfo);\n } else {\n VideoSDK.analytics({\n sdkType: 'react-web',\n sdkVersion: reactSDKVersion\n });\n }\n\n if (joinWithoutUserInteraction) {\n join();\n }\n };\n\n useEffect(() => {\n initSDK();\n }, []);\n\n useEffect(() => {\n if (reinitialiseMeetingOnConfigChange && joinedOnFirstRender.current) {\n leave();\n initSDK();\n !joinWithoutUserInteraction && join();\n }\n }, [config.meetingId, token, reinitialiseMeetingOnConfigChange]);\n\n return (\n <MeetingProviderContex.Provider\n value={{\n meetingId: meeting?.id,\n meeting,\n baseUrl: meeting?.baseUrl,\n localParticipant,\n mainParticipant,\n activeSpeakerId,\n participants,\n presenterId,\n localMicOn,\n localWebcamOn,\n localScreenShareOn,\n messages,\n isRecording,\n isLiveStreaming,\n pinnedParticipants,\n connections,\n isHls,\n recordingState,\n livestreamState,\n hlsState,\n isMeetingJoined,\n //\n join,\n leave,\n end,\n //\n startRecording,\n stopRecording,\n //\n sendChatMessage,\n respondEntry,\n //\n muteMic,\n unmuteMic,\n toggleMic,\n //\n disableWebcam,\n enableWebcam,\n toggleWebcam,\n //\n disableScreenShare,\n enableScreenShare,\n toggleScreenShare,\n //\n getMics,\n getWebcams,\n changeWebcam,\n changeMic,\n changeMode,\n startVideo,\n stopVideo,\n resumeVideo,\n pauseVideo,\n seekVideo,\n startLivestream,\n stopLivestream,\n connectTo,\n\n startHls,\n stopHls\n }}\n >\n {children}\n </MeetingProviderContex.Provider>\n );\n};\n\nexport default MeetingProvider;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\nimport { eventEmitter, events } from '../utils';\n\n/**\n *\n * @param {string} participantId\n * @param {{\n * onStreamDisabled?: Function,\n * onStreamEnabled?: Function,\n * onMediaStatusChanged?: Function,\n * onVideoQualityChanged?: Function,\n * }} options\n *\n * @returns {{\n * displayName: string;\n * participant: Participant;\n * webcamStream: MediaStreamTrack;\n * micStream: MediaStreamTrack;\n * screenShareStream: MediaStreamTrack;\n * webcamOn: boolean;\n * micOn: boolean;\n * screenShareOn: boolean;\n * isLocal: boolean;\n * isActiveSpeaker: boolean;\n * isMainParticipant: boolean;\n * pinState: any;\n * mode: \"CONFERENCE\" | \"VIEWER\",\n * consumeMicStreams: () => void;\n * consumeWebcamStreams: () => void;\n * stopConsumingMicStreams: () => void;\n * stopConsumingWebcamStreams: () => void;\n * setQuality: (quality: \"low\" | \"med\" | 'high') => void;\n * setViewPort: (width: number, height: number) => void;\n * enableMic: () => void;\n * disableMic: () => void;\n * enableWebcam: () => void;\n * disableWebcam: () => void;\n * pin: (data: \"SHARE_AND_CAM\" | \"CAM\" | \"SHARE\") => void;\n * unpin: (data: \"SHARE_AND_CAM\" | \"CAM\" | \"SHARE\") => void;\n * switchTo: ({ meetingId, payload, token }: {\n * meetingId: string;\n * payload: string;\n * token: string;\n * }) => Promise<void>;\n * getAudioStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object\n * }]>;\n * getVideoStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object,\n * currentSpatialLayer: number,\n * currentTemporalLayer: number,\n * preferredSpatialLayer: number,\n * preferredTemporalLayer: number\n * }]>;\n * getShareStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object,\n * currentSpatialLayer: number,\n * currentTemporalLayer: number,\n * preferredSpatialLayer: number,\n * preferredTemporalLayer: number\n * }]>;\n *}}\n *\n */\nconst useParticipant = (\n participantId,\n {\n onStreamEnabled = () => {},\n onStreamDisabled = () => {},\n onMediaStatusChanged = () => {},\n onVideoQualityChanged = () => {}\n } = {}\n) => {\n const [webcamStream, setwebcamStream] = useState(null);\n const [micStream, setMicStream] = useState(null);\n const [screenShareStream, setScreenShareStream] = useState(null);\n const [screenShareAudioStream, setScreenShareAudioStream] = useState(null);\n\n const meeting = useMeeting();\n\n const {\n participants,\n localParticipant,\n activeSpeakerId,\n mainParticipant,\n pinState\n } = useMemo(() => {\n const participants = meeting?.participants;\n const localParticipant = meeting?.localParticipant;\n const activeSpeakerId = meeting?.activeSpeakerId;\n const mainParticipant = meeting?.mainParticipant;\n const pinState = meeting?.pinnedParticipants?.get(participantId) || {\n cam: false,\n share: false\n };\n\n // const micOn = meeting?.participants?.get(participantId).micOn || false;\n // const webcamOn = meeting?.participants?.get(participantId).webcamOn || false;\n\n return {\n participants,\n localParticipant,\n activeSpeakerId,\n mainParticipant,\n pinState\n };\n }, [meeting]);\n\n /**\n * @type {Participant}\n */\n const participant = participants?.get(participantId);\n\n const [webcamOn, setWebcamOn] = useState(participant?.webcamOn);\n const [micOn, setMicOn] = useState(participant?.micOn);\n const [mode, setMode] = useState(participant?.mode);\n\n const setTrack = stream => {\n if (stream.track.readyState === 'live') {\n switch (stream.kind) {\n case 'video':\n if (webcamStream != null) {\n setwebcamStream(null);\n }\n setwebcamStream(stream);\n break;\n case 'audio':\n if (micStream != null) {\n setMicStream(null);\n }\n setMicStream(stream);\n break;\n case 'share':\n if (screenShareStream != null) {\n setScreenShareStream(null);\n }\n setScreenShareStream(stream);\n break;\n case 'shareAudio':\n if (screenShareAudioStream != null) {\n setScreenShareAudioStream(null);\n }\n setScreenShareAudioStream(stream);\n break;\n default:\n break;\n }\n }\n };\n\n const unSetTrack = stream => {\n if (stream.track.readyState !== 'live') {\n switch (stream.kind) {\n case 'video':\n setwebcamStream(null);\n break;\n case 'audio':\n setMicStream(null);\n break;\n case 'share':\n setScreenShareStream(null);\n break;\n case 'shareAudio':\n setScreenShareAudioStream(null);\n break;\n default:\n break;\n }\n }\n };\n\n const _handleStreamEnabled = stream => {\n setTrack(stream);\n onStreamEnabled(stream);\n };\n\n const _handleParticipantModeChanged = data => {\n if (participantId === data.participantId) {\n setMode(data.mode);\n }\n };\n\n const _handleStreamDisabled = stream => {\n unSetTrack(stream);\n onStreamDisabled(stream);\n };\n\n const _handleVideoQualityChanged = data => {\n const { peerId, prevQuality, currentQuality } = data;\n onVideoQualityChanged({ peerId, prevQuality, currentQuality });\n };\n\n const _handleMediaStatusChanged = data => {\n const { kind, peerId, newStatus } = data;\n if (kind == 'audio') {\n setMicOn(newStatus);\n } else if (kind == 'video') {\n setWebcamOn(newStatus);\n }\n onMediaStatusChanged({ kind, peerId, newStatus });\n };\n\n const setQuality = quality => {\n participant?.setQuality(quality);\n };\n\n const setViewPort = (width, height) => {\n participant?.setViewPort(width, height);\n };\n\n const enableMic = () => {\n participant?.enableMic();\n };\n const disableMic = () => {\n participant?.disableMic();\n };\n const enableWebcam = () => {\n participant?.enableWebcam();\n };\n const disableWebcam = () => {\n participant?.disableWebcam();\n };\n const pin = data => {\n participant?.pin(data);\n };\n const unpin = data => {\n participant?.unpin(data);\n };\n const getAudioStats = async () => {\n return participant?.getAudioStats();\n };\n const getVideoStats = async () => {\n return participant?.getVideoStats();\n };\n const getShareStats = async () => {\n return participant?.getShareStats();\n };\n\n const consumeWebcamStreams = () => {\n participant?.consumeWebcamStreams();\n };\n const consumeMicStreams = () => {\n participant?.consumeMicStreams();\n };\n const stopConsumingWebcamStreams = () => {\n participant?.stopConsumingWebcamStreams();\n };\n const stopConsumingMicStreams = () => {\n participant?.stopConsumingMicStreams();\n };\n const switchTo = async data => {\n await participant?.switchTo(data);\n };\n\n useEffect(() => {\n const streams = participant?.streams;\n\n if (streams) {\n streams.forEach(stream => {\n setTrack(stream);\n });\n }\n\n if (participant?.micOn) {\n setMicOn(micOn);\n }\n\n if (participant?.webcamOn) {\n setWebcamOn(webcamOn);\n }\n\n participant?.on('stream-enabled', _handleStreamEnabled);\n\n participant?.on('stream-disabled', _handleStreamDisabled);\n\n participant?.on('media-status-changed', _handleMediaStatusChanged);\n\n participant?.on('video-quality-changed', _handleVideoQualityChanged);\n\n eventEmitter.on(\n events['participant-mode-changed'],\n _handleParticipantModeChanged\n );\n\n return () => {\n participant?.off('stream-enabled', _handleStreamEnabled);\n\n participant?.off('stream-disabled', _handleStreamDisabled);\n\n participant?.off('media-status-changed', _handleMediaStatusChanged);\n\n participant?.off('video-quality-changed', _handleVideoQualityChanged);\n\n eventEmitter.off(\n events['participant-mode-changed'],\n _handleParticipantModeChanged\n );\n };\n }, [participant]);\n\n return {\n displayName: participant?.displayName,\n participant,\n webcamStream,\n micStream,\n screenShareStream,\n screenShareAudioStream,\n webcamOn: webcamOn || !!webcamStream,\n micOn: micOn || !!micStream,\n mode: mode,\n\n screenShareOn: !!screenShareStream,\n isLocal: localParticipant?.id === participantId,\n isActiveSpeaker: activeSpeakerId === participantId,\n isMainParticipant: mainParticipant?.id === participantId,\n pinState,\n\n //\n consumeMicStreams,\n consumeWebcamStreams,\n stopConsumingMicStreams,\n stopConsumingWebcamStreams,\n setQuality,\n setViewPort,\n enableMic,\n disableMic,\n enableWebcam,\n disableWebcam,\n pin,\n unpin,\n switchTo,\n getAudioStats,\n getVideoStats,\n getShareStats\n };\n};\n\nexport default useParticipant;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n/**\n *\n * @param {string} connectionId\n * @param {{onMeeting:{\n * onParticipantJoined?: Function,\n * onParticipantLeft?: Function,\n * onChatMessage?: Function\n * }}}\n * @returns {{\n * connection: {\n * id: string;\n * close: Function;\n * payload: string;\n * meeting: {\n * id: string;\n * sendChatMessage: Function;\n * end: Function;\n * participants: Array<ConnectionParticipant>;\n * };\n * }}}\n */\nconst useConnection = (\n connectionId,\n { onMeeting } = {\n onMeeting: {\n onParticipantJoined: () => {},\n onParticipantLeft: () => {},\n onChatMessage: () => {}\n }\n }\n) => {\n const onParticipantJoined = onMeeting?.onParticipantJoined;\n const onParticipantLeft = onMeeting?.onParticipantLeft;\n const onChatMessage = onMeeting?.onChatMessage;\n\n const meeting = useMeeting();\n\n const { connection, connectionParticipants } = useMemo(() => {\n const connection = meeting?.connections.get(connectionId);\n\n if (!connection) {\n throw new Error('connectionId not found');\n }\n\n const connectionParticipants = new Map(connection.meeting.participants);\n\n return {\n connection,\n connectionParticipants\n };\n }, [meeting]);\n\n const [_connectionParticipants, setConnectionParticipants] = useState(\n new Map(connectionParticipants)\n );\n\n const _handleParticipantJoined = participant => {\n setConnectionParticipants(s => {\n s.set(participant.id, participant);\n const participantsToSet = new Map(s);\n return participantsToSet;\n });\n onParticipantJoined(participant);\n };\n const _handleParticipantLeft = participantId => {\n setConnectionParticipants(s => {\n s.delete(participantId);\n const newParticipants = new Map(s);\n return newParticipants;\n });\n onParticipantLeft(participantId);\n };\n\n const _handleChatMessage = data => {\n onChatMessage(data);\n };\n\n useEffect(() => {\n connection?.meeting.on('participant-joined', _handleParticipantJoined);\n connection?.meeting.on('participant-left', _handleParticipantLeft);\n connection?.meeting.on('chat-message', _handleChatMessage);\n\n return () => {\n connection?.meeting.off('participant-joined', _handleParticipantJoined);\n connection?.meeting.off('participant-left', _handleParticipantLeft);\n connection?.meeting.off('chat-message', _handleChatMessage);\n };\n }, [connection]);\n\n return {\n connection: {\n id: connection.id,\n close: connection.close,\n payload: connection.payload,\n meeting: {\n id: connection.meeting.id,\n sendChatMessage: connection.meeting.sendChatMessage,\n end: connection.meeting.end,\n participants: _connectionParticipants\n }\n }\n };\n};\n\nexport default useConnection;\n","import { useEffect, useRef, useState } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n\n/**\n *\n * @param {string} topic\n * @param {{\n * onMessageReceived?: Function,\n * onOldMessagesReceived?: Function,\n * }} options\n * @returns {{\n * publish: (message: string,{persist: boolean}) => void\n * messages: Array<{\n * id: string,\n * message: string,\n * senderId: string,\n * senderName: string,\n * timestamp: string,\n * topic: string\n * }>\n * }}\n */\nconst usePubSub = (\n topic,\n { onMessageReceived = () => {}, onOldMessagesReceived = () => {} } = {}\n) => {\n const { meeting, isMeetingJoined } = useMeeting();\n const [messages, setMessages] = useState([]);\n const isSubscribed = useRef(false);\n\n /**\n *\n * @param {string} message\n * @param {{persist: boolean}} options\n */\n const publish = (message, options) => {\n if (meeting) {\n meeting.pubSub.publish(topic, message, options);\n }\n };\n\n const _handlePubSub = data => {\n setMessages(s => [...s, data]);\n onMessageReceived(data);\n };\n\n const subscribeToPubsub = async meeting => {\n const data = await meeting?.pubSub?.subscribe(topic, _handlePubSub);\n if (data) {\n onOldMessagesReceived(data.messages);\n setMessages(data.messages);\n }\n };\n\n useEffect(() => {\n if (meeting && !isSubscribed.current && isMeetingJoined) {\n isSubscribed.current = true;\n subscribeToPubsub(meeting);\n\n return () => {\n meeting?.pubSub?.unsubscribe(topic, _handlePubSub);\n };\n }\n }, [meeting, isMeetingJoined]);\n\n return { publish, messages };\n};\n\nexport default usePubSub;\n","import MeetingProvider from './meeting/MeetingProvider';\nimport {\n MeetingConsumer,\n useMeeting\n} from './meeting/meetingProviderContextDef';\nimport useParticipant from './participant/useParticipant';\nimport useConnection from './connection/useConnection';\nimport usePubSub from './pubSub/usePubSub';\nimport { VideoSDK } from '@videosdk.live/js-sdk';\n\nconst Constants = VideoSDK.Constants;\n\n/**\n * @param {{\n * cameraId?: string | undefined,\n * encoderConfig?: \"h90p_w160p\" | \"h180p_w320p\" | \"h216p_w384p\"\n * | \"h360p_w640p\" | \"h540p_w960p\" | \"h720p_w1280p\" | \"h1080p_w1920p\"\n * | \"h1440p_w2560p\" | \"h2160p_w3840p\" | \"h120p_w160p\" | \"h180p_w240p\"\n * | \"h240p_w320p\" | \"h360p_w480p\" | \"h480p_w640p\" | \"h540p_w720p\"\n * | \"h720p_w960p\" | \"h1080p_w1440p\" | \"h1440p_w1920p\" | undefined,\n * facingMode?: \"front\" | \"environment\" | undefined,\n * optimizationMode?: \"text\"| \"motion\" | \"detail\" | undefined\n * multiStream?: boolean\n * }}\n */\nconst createCameraVideoTrack = async ({\n cameraId = undefined,\n encoderConfig = undefined,\n facingMode = undefined,\n optimizationMode = undefined,\n multiStream = true\n}) => {\n return await VideoSDK.createCameraVideoTrack({\n cameraId,\n encoderConfig,\n facingMode,\n optimizationMode,\n multiStream\n });\n};\n\n/**\n * @param {{\n * encoderConfig?: \"h360p_30fps\" | \"h720p_5fps\" | \"h720p_15fps\"\n * | \"h1080p_15fps\" | \"h1080p_30fps\" | undefined,\n * optimizationMode?: \"text\"| \"motion\" | \"detail\" | undefined,\n * withAudio?:\"enable\" | \"disable\"\n * }}\n */\nconst createScreenShareVideoTrack = async ({\n encoderConfig = undefined,\n optimizationMode = undefined,\n withAudio = 'enable'\n}) => {\n return await VideoSDK.createScreenShareVideoTrack({\n encoderConfig,\n optimizationMode,\n withAudio\n });\n};\n\n/**\n * @param {{\n * noiseConfig?: {\n * echoCancellation: boolean,\n * autoGainControl: boolean,\n * noiseSuppression: boolean\n * } | undefined,\n * encoderConfig?: \"speech_low_quality\"\n * | \"speech_standard\" | \"music_standard\"\n * | \"standard_stereo\" | \"high_quality\"\n * | \"high_quality_stereo\" | undefined\n * microphoneId?: string | undefined\n * }}\n */\nconst createMicrophoneAudioTrack = async ({\n noiseConfig = undefined,\n encoderConfig = undefined,\n microphoneId = undefined\n}) => {\n return await VideoSDK.createMicrophoneAudioTrack({\n noiseConfig,\n encoderConfig,\n microphoneId\n });\n};\n\nexport {\n MeetingProvider,\n useMeeting,\n useParticipant,\n usePubSub,\n MeetingConsumer,\n useConnection,\n Constants,\n createCameraVideoTrack,\n createMicrophoneAudioTrack,\n createScreenShareVideoTrack\n};\n"],"names":["eventPrifix","events","error","eventEmitter","EventEmitter","setMaxListeners","MeetingProviderContex","createContext","useMeeting","onParticipantJoined","onParticipantLeft","onSpeakerChanged","onPresenterChanged","onMainParticipantChanged","onEntryRequested","onEntryResponded","onRecordingStarted","onRecordingStopped","onChatMessage","onMeetingJoined","onMeetingLeft","onLiveStreamStarted","onLiveStreamStopped","onVideoStateChanged","onVideoSeeked","onWebcamRequested","onMicRequested","onPinStateChanged","onConnectionOpen","onConnetionClose","onSwitchMeeting","onError","onHlsStarted","onHlsStopped","onHlsStateChanged","onRecordingStateChanged","onLivestreamStateChanged","onMeetingStateChanged","onParticipantModeChanged","useEffect","on","off","useContext","MeetingConsumer","children","React","MeetingProvider","config","token","joinWithoutUserInteraction","_reinitialiseMeetingOnConfigChange","reinitialiseMeetingOnConfigChange","deviceInfo","useState","meeting","setMeeting","localParticipant","setLocalParticipant","mainParticipant","setMainParticipant","activeSpeakerId","setActiveSpeakerId","presenterId","setPresenterId","localMicOn","setLocalMicOn","localWebcamOn","setLocalWebcamOn","localScreenShareOn","setLocalScreenShareOn","isRecording","setIsRecording","messages","setMessages","Map","participants","setParticipants","pinnedParticipants","setPinnedParticipants","isLiveStreaming","setIsLiveStreaming","connections","setConnections","isMeetingJoined","setIsMeetingJoined","isHls","setIsHls","recordingState","setRecordingState","livestreamState","setLivestreamState","hlsState","setHlsState","meetingRef","useRef","localMicOnRef","localWebcamOnRef","localScreenShareOnRef","isRecordingRef","configRef","tokenRef","joinedOnFirstRender","isHlsRef","useMemo","current","resetStates","_handle_participant_joined","participant","set","id","participantsToSet","emit","_handle_participant_left","newParticipants","_handle_presenter_changed","_handle_main_participant_changed","_handle_speaker_changed","_handle_chat_message","data","s","_handle_entry_requested","_handle_entry_responded","participantId","decision","_handle_recording_started","_handle_recording_stopped","_handle_localParticipant_stream_enabled","stream","track","readyState","kind","_handle_localParticipant_stream_disabled","_handle_live_stream_started","_handle_live_stream_stopped","_handle_hls_started","_handle_hls_stopped","_handle_video_state_changed","_handle_video_seeked","_handle_webcam_requested","_handle_mic_requested","_handle_meeting_joined","_handle_meeting_left","_handle_meeting_state_changed","_handle_pin_state_changed","_handle_connection_open","_handle_connection_close","_handle_switch_meeting","_handle_error","_handle_recording_state_changed","_handle_livestream_state_changed","_handle_hls_state_changed","_handel_participant_mode_changed","state","pinnedBy","cam","share","pinnedParticipantsToSet","connection","connectionsToSet","connectionId","newConnections","d","status","part","get","mode","join","VideoSDK","initMeeting","leave","end","startRecording","webhookUrl","awsDirPath","stopRecording","unmuteMic","customAudioTrack","undefined","muteMic","toggleMic","disableWebcam","enableWebcam","customVideoTrack","toggleWebcam","disableScreenShare","enableScreenShare","customScreenShareTrack","toggleScreenShare","changeMode","sendChatMessage","text","respondEntry","getMics","getWebcams","changeWebcam","obj","changeMic","startVideo","link","stopVideo","resumeVideo","pauseVideo","currentTime","seekVideo","startLivestream","streamInfo","stopLivestream","connectTo","meetingId","payload","startHls","stopHls","initSDK","analytics","sdkType","sdkVersion","reactSDKVersion","baseUrl","useParticipant","onStreamEnabled","onStreamDisabled","onMediaStatusChanged","onVideoQualityChanged","webcamStream","setwebcamStream","micStream","setMicStream","screenShareStream","setScreenShareStream","screenShareAudioStream","setScreenShareAudioStream","pinState","webcamOn","setWebcamOn","micOn","setMicOn","setMode","setTrack","unSetTrack","_handleStreamEnabled","_handleParticipantModeChanged","_handleStreamDisabled","_handleVideoQualityChanged","peerId","prevQuality","currentQuality","_handleMediaStatusChanged","newStatus","setQuality","quality","setViewPort","width","height","enableMic","disableMic","pin","unpin","getAudioStats","getVideoStats","getShareStats","consumeWebcamStreams","consumeMicStreams","stopConsumingWebcamStreams","stopConsumingMicStreams","switchTo","streams","forEach","displayName","screenShareOn","isLocal","isActiveSpeaker","isMainParticipant","useConnection","onMeeting","Error","connectionParticipants","_connectionParticipants","setConnectionParticipants","_handleParticipantJoined","_handleParticipantLeft","_handleChatMessage","close","usePubSub","topic","onMessageReceived","onOldMessagesReceived","isSubscribed","publish","message","options","pubSub","_handlePubSub","subscribeToPubsub","subscribe","unsubscribe","Constants","createCameraVideoTrack","cameraId","encoderConfig","facingMode","optimizationMode","multiStream","createScreenShareVideoTrack","withAudio","createMicrophoneAudioTrack","noiseConfig","microphoneId"],"mappings":"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"}
@@ -297,7 +297,7 @@ var MeetingConsumer = function MeetingConsumer(_ref2) {
297
297
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MeetingProviderContex.Consumer, null, children));
298
298
  };
299
299
 
300
- var version = "0.1.64";
300
+ var version = "0.1.65";
301
301
 
302
302
  var MeetingProvider = function MeetingProvider(_ref) {
303
303
  var children = _ref.children,
@@ -1116,7 +1116,6 @@ var useParticipant = function useParticipant(participantId, _temp) {
1116
1116
  onStreamEnabled(stream);
1117
1117
  };
1118
1118
  var _handleParticipantModeChanged = function _handleParticipantModeChanged(data) {
1119
- console.log('## FINAL', data);
1120
1119
  if (participantId === data.participantId) {
1121
1120
  setMode(data.mode);
1122
1121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/utils.js","../src/meeting/meetingProviderContextDef.js","../src/meeting/MeetingProvider.js","../src/participant/useParticipant.js","../src/connection/useConnection.js","../src/pubSub/usePubSub.js","../src/index.js"],"sourcesContent":["import EventEmitter from 'events';\n\nconst eventPrifix = 'videosdk-live-react-sdk';\n\nconst events = {\n 'participant-joined': `${eventPrifix}-participant-joined`,\n 'participant-left': `${eventPrifix}-participant-left`,\n 'speaker-changed': `${eventPrifix}-speaker-changed`,\n 'presenter-changed': `${eventPrifix}-presenter-changed`,\n 'main-participant-changed': `${eventPrifix}-main-participant-changed`,\n 'entry-requested': `${eventPrifix}-entry-requested`,\n 'entry-responded': `${eventPrifix}-entry-responded`,\n 'recording-started': `${eventPrifix}-recording-started`,\n 'recording-stopped': `${eventPrifix}-recording-stopped`,\n 'chat-message': `${eventPrifix}-chat-message`,\n 'meeting-joined': `${eventPrifix}-meeting-joined`,\n 'meeting-left': `${eventPrifix}-meeting-left`,\n 'live-stream-started': `${eventPrifix}-live-stream-started`,\n 'live-stream-stopped': `${eventPrifix}-live-stream-stopped`,\n 'video-state-changed': `${eventPrifix}-video-state-changed`,\n 'video-seeked': `${eventPrifix}-video-seeked`,\n 'webcam-requested': `${eventPrifix}-webcam-requested`,\n 'mic-requested': `${eventPrifix}-mic-requested`,\n 'pin-state-changed': `${eventPrifix}-pin-state-changed`,\n 'connection-open': `${eventPrifix}-connection-open`,\n 'connection-close': `${eventPrifix}-connection-close`,\n 'switch-meeting': `${eventPrifix}-switch-meeting`,\n error: `${eventPrifix}-error`,\n 'hls-started': `${eventPrifix}-hls-started`,\n 'hls-stopped': `${eventPrifix}-hls-stopped`,\n 'hls-state-changed': `${eventPrifix}-hls-state-changed`,\n 'recording-state-changed': `${eventPrifix}-recording-state-changed`,\n 'livestream-state-changed': `${eventPrifix}-livestream-state-changed`,\n 'meeting-state-changed': `${eventPrifix}-meeting-state-changed`,\n 'participant-mode-changed': `${eventPrifix}-participant-mode-changed`\n};\n\nconst eventEmitter = new EventEmitter();\neventEmitter.setMaxListeners(9999);\n\nexport { eventEmitter, events };\n","import React from 'react';\nimport { useContext, createContext, useEffect } from 'react';\nimport { eventEmitter, events } from '../utils';\nexport const MeetingProviderContex = createContext();\n\n/**\n *\n * @param {{\n * onParticipantJoined?: () => void;\n * onParticipantLeft?: () => void;\n * onSpeakerChanged?: () => void;\n * onPresenterChanged?: () => void;\n * onMainParticipantChanged?: () => void;\n * onEntryRequested?: () => void;\n * onEntryResponded?: () => void;\n * onRecordingStarted?: () => void;\n * onRecordingStopped?: () => void;\n * onChatMessage?: () => void;\n * onMeetingJoined?: () => void;\n * onMeetingLeft?: () => void;\n * onLiveStreamStarted?: () => void;\n * onLiveStreamStopped?: () => void;\n * onVideoStateChanged?: () => void;\n * onVideoSeeked?: () => void;\n * onWebcamRequested?: () => void;\n * onMicRequested?: () => void;\n * onPinStateChanged?: () => void;\n * onConnectionOpen?: () => void;\n * onConnetionClose?: () => void;\n * onSwitchMeeting?: () => void;\n * onError?: () => void;\n * onHlsStarted?: () => void;\n * onHlsStopped?: () => void;\n * onHlsStateChanged?: () => void;\n * onRecordingStateChanged?: () => void;\n * onLivestreamStateChanged?: () => void;\n * onMeetingStateChanged?: () => void;\n *}}\n * @returns {{\n * meetingId: string,\n * meeting: Meeting,\n * localParticipant: Participant,\n * activeSpeakerId: string,\n * participants: Map<string, Participant>,\n * pinnedParticipants: Map<string, {cam:boolean, share:boolean}>,\n * presenterId: string,\n * localMicOn: boolean,\n * localWebcamOn: boolean,\n * isRecording: boolean,\n * isLiveStreaming: boolean,\n * localScreenShareOn: boolean,\n * connections: Map<string, Connection>,\n * join: () => void\n * leave: () => void\n * end: () => void\n * enableMic: (customAudioTrack?: MediaStream | undefined) => void\n * disableMic: () => void\n * toggleMic: (customAudioTrack?: MediaStream | undefined) => void\n * enableWebcam: (customVideoTrack?: MediaStream | undefined) => void\n * disableWebcam: () => void\n * toggleWebcam: (customVideoTrack?: MediaStream | undefined) => void\n * enableScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * disableScreenShare: () => void\n * toggleScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * startRecording: (webhookUrl?: string, awsDirPath?: string, config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * };\n * }) => void\n * stopRecording: () => void\n * startLiveStream: (outputs: Array<{\n * url: string;\n * streamKey: string;\n * }>,\n * config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * };\n * }) => void\n * stopLiveStream: () => void\n * startHls: (config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * };\n * }) => void\n * stopHls: () => void\n * getMics: () => Promise<{\n * deviceId: string;\n * label: string;\n * }[]>void\n * getWebcams: () => Promise<{\n * deviceId: string;\n * label: string;\n * facingMode: \"environment\" | \"front\"\n * }[]>void\n * changeMic: (object: string | MediaStream) => void\n * changeWebcam: (object: string | MediaStream) => void\n * startVideo: ({ link }: {\n * link: string;\n * }) => void\n * stopVideo: () => void\n * pauseVideo: ({ currentTime }: {\n * currentTime: number;\n * }) => void\n * resumeVideo: () => void\n * seekVideo: ({ currentTime }: {\n * currentTime: number;\n * }) => void\n * connectTo: ({ meetingId, payload }: {\n * meetingId: string;\n * payload: string;\n * }) => void\n *\n * }}\n */\nexport const useMeeting = ({\n onParticipantJoined = () => {},\n onParticipantLeft = () => {},\n onSpeakerChanged = () => {},\n onPresenterChanged = () => {},\n onMainParticipantChanged = () => {},\n onEntryRequested = () => {},\n onEntryResponded = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onChatMessage = () => {},\n onMeetingJoined = () => {},\n onMeetingLeft = () => {},\n onLiveStreamStarted = () => {},\n onLiveStreamStopped = () => {},\n onVideoStateChanged = () => {},\n onVideoSeeked = () => {},\n onWebcamRequested = () => {},\n onMicRequested = () => {},\n onPinStateChanged = () => {},\n onConnectionOpen = () => {},\n onConnetionClose = () => {},\n onSwitchMeeting = () => {},\n onError = () => {},\n onHlsStarted = () => {},\n onHlsStopped = () => {},\n onHlsStateChanged = () => {},\n onRecordingStateChanged = () => {},\n onLivestreamStateChanged = () => {},\n onMeetingStateChanged = () => {},\n onParticipantModeChanged = () => {}\n} = {}) => {\n useEffect(() => {\n eventEmitter.on(events['participant-joined'], onParticipantJoined);\n eventEmitter.on(events['participant-left'], onParticipantLeft);\n eventEmitter.on(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.on(events['presenter-changed'], onPresenterChanged);\n eventEmitter.on(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.on(events['entry-requested'], onEntryRequested);\n eventEmitter.on(events['entry-responded'], onEntryResponded);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['chat-message'], onChatMessage);\n eventEmitter.on(events['meeting-joined'], onMeetingJoined);\n eventEmitter.on(events['meeting-left'], onMeetingLeft);\n eventEmitter.on(events['live-stream-started'], onLiveStreamStarted);\n eventEmitter.on(events['live-stream-stopped'], onLiveStreamStopped);\n eventEmitter.on(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.on(events['video-seeked'], onVideoSeeked);\n eventEmitter.on(events['webcam-requested'], onWebcamRequested);\n eventEmitter.on(events['mic-requested'], onMicRequested);\n eventEmitter.on(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.on(events['connection-open'], onConnectionOpen);\n eventEmitter.on(events['connection-close'], onConnetionClose);\n eventEmitter.on(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.on(events['error'], onError);\n eventEmitter.on(events['hls-started'], onHlsStarted);\n eventEmitter.on(events['hls-stopped'], onHlsStopped);\n eventEmitter.on(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.on(events['recording-state-changed'], onRecordingStateChanged);\n eventEmitter.on(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.on(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n\n return () => {\n eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.off(events['participant-joined'], onParticipantJoined);\n eventEmitter.off(events['participant-left'], onParticipantLeft);\n eventEmitter.off(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.off(events['presenter-changed'], onPresenterChanged);\n eventEmitter.off(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.off(events['entry-requested'], onEntryRequested);\n eventEmitter.off(events['entry-responded'], onEntryResponded);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['chat-message'], onChatMessage);\n eventEmitter.off(events['meeting-joined'], onMeetingJoined);\n eventEmitter.off(events['meeting-left'], onMeetingLeft);\n eventEmitter.off(events['live-stream-started'], onLiveStreamStarted);\n eventEmitter.off(events['live-stream-stopped'], onLiveStreamStopped);\n eventEmitter.off(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.off(events['video-seeked'], onVideoSeeked);\n eventEmitter.off(events['webcam-requested'], onWebcamRequested);\n eventEmitter.off(events['mic-requested'], onMicRequested);\n eventEmitter.off(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.off(events['connection-open'], onConnectionOpen);\n eventEmitter.off(events['connection-close'], onConnetionClose);\n eventEmitter.off(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.off(events['error'], onError);\n eventEmitter.off(events['hls-started'], onHlsStarted);\n eventEmitter.off(events['hls-stopped'], onHlsStopped);\n eventEmitter.off(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.off(\n events['recording-state-changed'],\n onRecordingStateChanged\n );\n eventEmitter.off(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.off(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n };\n }, []);\n return useContext(MeetingProviderContex);\n};\n\nexport const MeetingConsumer = ({\n children,\n onParticipantJoined = () => {},\n onParticipantLeft = () => {},\n onSpeakerChanged = () => {},\n onPresenterChanged = () => {},\n onMainParticipantChanged = () => {},\n onEntryRequested = () => {},\n onEntryResponded = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onChatMessage = () => {},\n onMeetingJoined = () => {},\n onMeetingLeft = () => {},\n onLiveStreamStarted = () => {},\n onLiveStreamStopped = () => {},\n onVideoStateChanged = () => {},\n onVideoSeeked = () => {},\n onWebcamRequested = () => {},\n onMicRequested = () => {},\n onPinStateChanged = () => {},\n onConnectionOpen = () => {},\n onConnetionClose = () => {},\n onSwitchMeeting = () => {},\n onError = () => {},\n onHlsStarted = () => {},\n onHlsStopped = () => {},\n onHlsStateChanged = () => {},\n onRecordingStateChanged = () => {},\n onLivestreamStateChanged = () => {},\n onMeetingStateChanged = () => {},\n onParticipantModeChanged = () => {}\n}) => {\n useEffect(() => {\n eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.on(events['participant-joined'], onParticipantJoined);\n eventEmitter.on(events['participant-left'], onParticipantLeft);\n eventEmitter.on(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.on(events['presenter-changed'], onPresenterChanged);\n eventEmitter.on(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.on(events['entry-requested'], onEntryRequested);\n eventEmitter.on(events['entry-responded'], onEntryResponded);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['chat-message'], onChatMessage);\n eventEmitter.on(events['meeting-joined'], onMeetingJoined);\n eventEmitter.on(events['meeting-left'], onMeetingLeft);\n eventEmitter.on(events['live-stream-enabled'], onLiveStreamStarted);\n eventEmitter.on(events['live-stream-disabled'], onLiveStreamStopped);\n eventEmitter.on(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.on(events['video-seeked'], onVideoSeeked);\n eventEmitter.on(events['webcam-requested'], onWebcamRequested);\n eventEmitter.on(events['mic-requested'], onMicRequested);\n eventEmitter.on(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.on(events['connection-open'], onConnectionOpen);\n eventEmitter.on(events['connection-close'], onConnetionClose);\n eventEmitter.on(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.on(events['error'], onError);\n eventEmitter.on(events['hls-started'], onHlsStarted);\n eventEmitter.on(events['hls-stopped'], onHlsStopped);\n eventEmitter.on(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.on(events['recording-state-changed'], onRecordingStateChanged);\n eventEmitter.on(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.on(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n\n return () => {\n eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.off(events['participant-joined'], onParticipantJoined);\n eventEmitter.off(events['participant-left'], onParticipantLeft);\n eventEmitter.off(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.off(events['presenter-changed'], onPresenterChanged);\n eventEmitter.off(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.off(events['entry-requested'], onEntryRequested);\n eventEmitter.off(events['entry-responded'], onEntryResponded);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['chat-message'], onChatMessage);\n eventEmitter.off(events['meeting-joined'], onMeetingJoined);\n eventEmitter.off(events['meeting-left'], onMeetingLeft);\n eventEmitter.off(events['live-stream-enabled'], onLiveStreamStarted);\n eventEmitter.off(events['live-stream-disabled'], onLiveStreamStopped);\n eventEmitter.off(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.off(events['video-seeked'], onVideoSeeked);\n eventEmitter.off(events['webcam-requested'], onWebcamRequested);\n eventEmitter.off(events['mic-requested'], onMicRequested);\n eventEmitter.off(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.off(events['connection-open'], onConnectionOpen);\n eventEmitter.off(events['connection-close'], onConnetionClose);\n eventEmitter.off(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.off(events['error'], onError);\n eventEmitter.off(events['hls-started'], onHlsStarted);\n eventEmitter.off(events['hls-stopped'], onHlsStopped);\n eventEmitter.off(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.off(\n events['recording-state-changed'],\n onRecordingStateChanged\n );\n eventEmitter.off(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.off(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n };\n }, []);\n\n return (\n <React.Fragment>\n <MeetingProviderContex.Consumer>\n {children}\n </MeetingProviderContex.Consumer>\n </React.Fragment>\n );\n};\n","import { MeetingProviderContex } from './meetingProviderContextDef';\nimport React, { useEffect, useRef, useState, useMemo } from 'react';\nimport { eventEmitter, events } from '../utils';\nimport { VideoSDK } from '@videosdk.live/js-sdk';\nimport { version as reactSDKVersion } from '../../package.json';\n\n/**\n *\n * @param {{\n * children:any,\n * config:{\n * meetingId: string,\n * autoConsume?: boolean,\n * preferredProtocol?:\"UDP_ONLY\" | \"UDP_OVER_TCP\",\n * participantId?:string | undefined,\n * name:string,\n * micEnabled:boolean,\n * webcamEnabled:boolean,\n * maxResolution?:\"hd\" | \"sd\",\n * customCameraVideoTrack?: MediaStream | undefined\n * customMicrophoneAudioTrack?: MediaStream | undefined,\n * multiStream?: boolean,\n * mode?: \"CONFERENCE\" | \"VIEWER\",\n * },\n * token: string,\n * joinWithoutUserInteraction?: boolean,\n * reinitialiseMeetingOnConfigChange?: boolean,\n * deviceInfo?: object\n * }}\n *\n */\nconst MeetingProvider = ({\n children,\n config,\n token,\n joinWithoutUserInteraction,\n reinitialiseMeetingOnConfigChange: _reinitialiseMeetingOnConfigChange,\n deviceInfo\n}) => {\n const [meeting, setMeeting] = useState(null);\n const [localParticipant, setLocalParticipant] = useState(null);\n const [mainParticipant, setMainParticipant] = useState(null);\n const [activeSpeakerId, setActiveSpeakerId] = useState(null);\n const [presenterId, setPresenterId] = useState(null);\n const [localMicOn, setLocalMicOn] = useState(false);\n const [localWebcamOn, setLocalWebcamOn] = useState(false);\n const [localScreenShareOn, setLocalScreenShareOn] = useState(false);\n const [isRecording, setIsRecording] = useState(false);\n const [messages, setMessages] = useState([]);\n const [participants, setParticipants] = useState(new Map());\n const [pinnedParticipants, setPinnedParticipants] = useState(new Map());\n const [isLiveStreaming, setIsLiveStreaming] = useState(false);\n const [connections, setConnections] = useState(new Map());\n const [isMeetingJoined, setIsMeetingJoined] = useState(false);\n const [isHls, setIsHls] = useState(false);\n const [recordingState, setRecordingState] = useState(null);\n const [livestreamState, setLivestreamState] = useState(null);\n const [hlsState, setHlsState] = useState(null);\n\n const meetingRef = useRef();\n const localMicOnRef = useRef();\n const localWebcamOnRef = useRef();\n const localScreenShareOnRef = useRef();\n const isRecordingRef = useRef();\n const configRef = useRef(config);\n const tokenRef = useRef(token);\n const joinedOnFirstRender = useRef(false);\n const isHlsRef = useRef();\n\n const reinitialiseMeetingOnConfigChange = useMemo(\n () => _reinitialiseMeetingOnConfigChange,\n []\n );\n\n useEffect(() => {\n meetingRef.current = meeting;\n }, [meeting]);\n useEffect(() => {\n localMicOnRef.current = localMicOn;\n }, [localMicOn]);\n useEffect(() => {\n localWebcamOnRef.current = localWebcamOn;\n }, [localWebcamOn]);\n useEffect(() => {\n localScreenShareOnRef.current = localScreenShareOn;\n }, [localScreenShareOn]);\n useEffect(() => {\n isRecordingRef.current = isRecording;\n }, [isRecording]);\n useEffect(() => {\n configRef.current = config;\n }, [config]);\n useEffect(() => {\n tokenRef.current = token;\n }, [token]);\n useEffect(() => {\n isHlsRef.current = isHls;\n }, [isHls]);\n\n const resetStates = () => {\n setMeeting(null);\n setLocalParticipant(null);\n setMainParticipant(null);\n setActiveSpeakerId(null);\n setPresenterId(null);\n setLocalMicOn(false);\n setLocalWebcamOn(false);\n setLocalScreenShareOn(false);\n setIsRecording(false);\n setMessages([]);\n setIsLiveStreaming(false);\n setParticipants(new Map());\n setPinnedParticipants(new Map());\n setConnections(new Map());\n setIsMeetingJoined(false);\n setIsHls(false);\n setRecordingState(null);\n setLivestreamState(null);\n setHlsState(null);\n };\n\n const _handle_participant_joined = participant => {\n setParticipants(participants => {\n participants.set(participant.id, participant);\n const participantsToSet = new Map(participants);\n return participantsToSet;\n });\n eventEmitter.emit(events['participant-joined'], participant);\n };\n const _handle_participant_left = participant => {\n setParticipants(participants => {\n participants.delete(participant.id);\n\n const newParticipants = new Map(participants);\n return newParticipants;\n });\n eventEmitter.emit(events['participant-left'], participant);\n };\n const _handle_presenter_changed = presenterId => {\n setPresenterId(presenterId);\n setLocalScreenShareOn(\n presenterId === meetingRef?.current?.localParticipant?.id\n );\n eventEmitter.emit(events['presenter-changed'], presenterId);\n };\n const _handle_main_participant_changed = participant => {\n setMainParticipant(participant);\n eventEmitter.emit(events['main-participant-changed'], participant);\n };\n const _handle_speaker_changed = activeSpeakerId => {\n setActiveSpeakerId(activeSpeakerId);\n eventEmitter.emit(events['speaker-changed'], activeSpeakerId);\n };\n const _handle_chat_message = data => {\n setMessages(s => [...s, data]);\n\n eventEmitter.emit(events['chat-message'], data);\n };\n const _handle_entry_requested = data => {\n eventEmitter.emit(events['entry-requested'], data);\n };\n const _handle_entry_responded = (participantId, decision) => {\n eventEmitter.emit(events['entry-responded'], participantId, decision);\n };\n const _handle_recording_started = () => {\n setIsRecording(true);\n eventEmitter.emit(events['recording-started']);\n };\n const _handle_recording_stopped = () => {\n setIsRecording(false);\n eventEmitter.emit(events['recording-stopped']);\n };\n\n const _handle_localParticipant_stream_enabled = stream => {\n if (stream.track.readyState === 'live') {\n if (stream.kind === 'video') {\n setLocalWebcamOn(true);\n } else if (stream.kind === 'audio') {\n setLocalMicOn(true);\n }\n }\n };\n const _handle_localParticipant_stream_disabled = stream => {\n if (stream.track.readyState === 'ended') {\n if (stream.kind === 'video') {\n setLocalWebcamOn(false);\n } else if (stream.kind === 'audio') {\n setLocalMicOn(false);\n }\n }\n };\n\n const _handle_live_stream_started = data => {\n setIsLiveStreaming(true);\n eventEmitter.emit(events['live-stream-started'], data);\n };\n const _handle_live_stream_stopped = () => {\n setIsLiveStreaming(false);\n eventEmitter.emit(events['live-stream-stopped']);\n };\n const _handle_hls_started = data => {\n setIsHls(true);\n eventEmitter.emit(events['hls-started'], data);\n };\n const _handle_hls_stopped = () => {\n setIsHls(false);\n eventEmitter.emit(events['hls-stopped']);\n };\n const _handle_video_state_changed = data => {\n eventEmitter.emit(events['video-state-changed'], data);\n };\n const _handle_video_seeked = data => {\n eventEmitter.emit(events['video-seeked'], data);\n };\n\n const _handle_webcam_requested = data => {\n eventEmitter.emit(events['webcam-requested'], data);\n };\n\n const _handle_mic_requested = data => {\n eventEmitter.emit(events['mic-requested'], data);\n };\n\n const _handle_meeting_joined = data => {\n joinedOnFirstRender.current = true;\n setMessages(s => [...s, ...data.messages]);\n eventEmitter.emit(events['meeting-joined'], data);\n setIsMeetingJoined(true);\n };\n\n const _handle_meeting_left = () => {\n eventEmitter.emit(events['meeting-left']);\n\n const meeting = meetingRef.current;\n\n if (meeting) {\n if (typeof meeting?.off === 'function') {\n meeting.off('meeting-state-changed', _handle_meeting_state_changed);\n meeting.off('participant-joined', _handle_participant_joined);\n meeting.off('participant-left', _handle_participant_left);\n meeting.off('presenter-changed', _handle_presenter_changed);\n meeting.off(\n 'main-participant-changed',\n _handle_main_participant_changed\n );\n meeting.off('speaker-changed', _handle_speaker_changed);\n meeting.off('entry-requested', _handle_entry_requested);\n meeting.off('entry-responded', _handle_entry_responded);\n meeting.off('chat-message', _handle_chat_message);\n meeting.off('recording-started', _handle_recording_started);\n meeting.off('recording-stopped', _handle_recording_stopped);\n meeting.off('meeting-joined', _handle_meeting_joined);\n meeting.off('meeting-left', _handle_meeting_left);\n meeting.off('livestream-started', _handle_live_stream_started);\n meeting.off('livestream-stopped', _handle_live_stream_stopped);\n meeting.off('video-state-changed', _handle_video_state_changed);\n meeting.off('video-seeked', _handle_video_seeked);\n meeting.off('webcam-requested', _handle_webcam_requested);\n meeting.off('mic-requested', _handle_mic_requested);\n meeting.off('pin-state-changed', _handle_pin_state_changed);\n meeting.off('connection-open', _handle_connection_open);\n meeting.off('connection-close', _handle_connection_close);\n meeting.off('switch-meeting', _handle_switch_meeting);\n meeting.off('error', _handle_error);\n meeting.off('hls-started', _handle_hls_started);\n meeting.off('hls-stopped', _handle_hls_stopped);\n meeting.off('recording-state-changed', _handle_recording_state_changed);\n meeting.off(\n 'livestream-state-changed',\n _handle_livestream_state_changed\n );\n meeting.off('hls-state-changed', _handle_hls_state_changed);\n meeting.off(\n 'participant-mode-changed',\n _handel_participant_mode_changed\n );\n }\n\n if (typeof meeting?.localParticipant?.off === 'function') {\n meeting.localParticipant.off(\n 'stream-enabled',\n _handle_localParticipant_stream_enabled\n );\n\n meeting.localParticipant.off(\n 'stream-disabled',\n _handle_localParticipant_stream_disabled\n );\n }\n\n resetStates();\n }\n };\n\n const _handle_pin_state_changed = ({ participantId, state, pinnedBy }) => {\n setPinnedParticipants(pinnedParticipants => {\n if (!state.cam && !state.share) {\n pinnedParticipants.delete(participantId);\n } else {\n pinnedParticipants.set(participantId, state);\n }\n\n const pinnedParticipantsToSet = new Map(pinnedParticipants);\n\n return pinnedParticipantsToSet;\n });\n\n eventEmitter.emit(events['pin-state-changed'], {\n participantId,\n state,\n pinnedBy\n });\n };\n\n const _handle_connection_open = connection => {\n setConnections(s => {\n s.set(connection.id, connection);\n const connectionsToSet = new Map(s);\n return connectionsToSet;\n });\n eventEmitter.emit(events['connection-open'], connection);\n };\n\n const _handle_connection_close = connectionId => {\n setConnections(s => {\n s.delete(connectionId);\n const newConnections = new Map(s);\n return newConnections;\n });\n eventEmitter.emit(events['connection-close'], connectionId);\n };\n\n const _handle_switch_meeting = d => {\n eventEmitter.emit(events['switch-meeting'], d);\n };\n const _handle_error = data => {\n eventEmitter.emit(events['error'], data);\n };\n\n const _handle_recording_state_changed = data => {\n setRecordingState(data?.status);\n eventEmitter.emit(events['recording-state-changed'], data);\n };\n const _handle_livestream_state_changed = data => {\n setLivestreamState(data?.status);\n eventEmitter.emit(events['livestream-state-changed'], data);\n };\n const _handle_hls_state_changed = data => {\n setHlsState(data?.status);\n eventEmitter.emit(events['hls-state-changed'], data);\n };\n\n const _handle_meeting_state_changed = data => {\n eventEmitter.emit(events['meeting-state-changed'], data);\n };\n\n const _handel_participant_mode_changed = data => {\n setParticipants(participants => {\n const part = participants.get(data.participantId);\n part.mode = data.mode;\n participants.set(part.id, part);\n return participants;\n });\n\n // Update Local Participant Object\n if (data.participantId === meetingRef?.current?.localParticipant?.id) {\n setLocalParticipant(participant => {\n participant.mode = data.mode;\n return participant;\n });\n }\n\n eventEmitter.emit(events['participant-mode-changed'], data);\n };\n\n const join = () => {\n const meeting = VideoSDK && VideoSDK.initMeeting(configRef.current);\n setMeeting(meeting);\n const { localParticipant, participants } = meeting;\n participants.set(localParticipant.id, localParticipant);\n setParticipants(participants);\n setLocalParticipant(localParticipant);\n meeting.on('meeting-state-changed', _handle_meeting_state_changed);\n meeting.on('participant-joined', _handle_participant_joined);\n meeting.on('participant-left', _handle_participant_left);\n meeting.on('presenter-changed', _handle_presenter_changed);\n meeting.on('main-participant-changed', _handle_main_participant_changed);\n meeting.on('speaker-changed', _handle_speaker_changed);\n meeting.on('entry-requested', _handle_entry_requested);\n meeting.on('entry-responded', _handle_entry_responded);\n meeting.on('chat-message', _handle_chat_message);\n meeting.on('recording-started', _handle_recording_started);\n meeting.on('recording-stopped', _handle_recording_stopped);\n meeting.on('meeting-joined', _handle_meeting_joined);\n meeting.on('meeting-left', _handle_meeting_left);\n meeting.on('livestream-started', _handle_live_stream_started);\n meeting.on('livestream-stopped', _handle_live_stream_stopped);\n meeting.on('video-state-changed', _handle_video_state_changed);\n meeting.on('video-seeked', _handle_video_seeked);\n meeting.on('webcam-requested', _handle_webcam_requested);\n meeting.on('mic-requested', _handle_mic_requested);\n meeting.on('pin-state-changed', _handle_pin_state_changed);\n\n meeting.on('connection-open', _handle_connection_open);\n meeting.on('connection-close', _handle_connection_close);\n meeting.on('switch-meeting', _handle_switch_meeting);\n meeting.on('error', _handle_error);\n meeting.on('hls-started', _handle_hls_started);\n meeting.on('hls-stopped', _handle_hls_stopped);\n meeting.on('recording-state-changed', _handle_recording_state_changed);\n meeting.on('livestream-state-changed', _handle_livestream_state_changed);\n meeting.on('hls-state-changed', _handle_hls_state_changed);\n meeting.on('participant-mode-changed', _handel_participant_mode_changed);\n\n meeting.localParticipant.on(\n 'stream-enabled',\n _handle_localParticipant_stream_enabled\n );\n meeting.localParticipant.on(\n 'stream-disabled',\n _handle_localParticipant_stream_disabled\n );\n meeting.join();\n };\n\n const leave = () => {\n const meeting = meetingRef.current;\n\n if (meeting) {\n meeting.leave();\n }\n };\n\n const end = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.end();\n }\n };\n const startRecording = (webhookUrl, awsDirPath, config) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startRecording(webhookUrl, awsDirPath, config);\n }\n };\n const stopRecording = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n const isRecording = isRecordingRef.current;\n if (isRecording) {\n meeting.stopRecording();\n }\n }\n };\n const unmuteMic = (customAudioTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.unmuteMic(customAudioTrack);\n }\n };\n const muteMic = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.muteMic();\n }\n };\n const toggleMic = (customAudioTrack = undefined) => {\n const localMicOn = localMicOnRef.current;\n\n if (localMicOn) {\n muteMic();\n } else {\n unmuteMic(customAudioTrack);\n }\n };\n const disableWebcam = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableWebcam();\n }\n };\n const enableWebcam = (customVideoTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableWebcam(customVideoTrack);\n }\n };\n const toggleWebcam = (customVideoTrack = undefined) => {\n const localWebcamOn = localWebcamOnRef.current;\n\n if (localWebcamOn) {\n disableWebcam();\n } else {\n enableWebcam(customVideoTrack);\n }\n };\n const disableScreenShare = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableScreenShare();\n }\n };\n const enableScreenShare = (customScreenShareTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableScreenShare(customScreenShareTrack);\n }\n };\n\n const toggleScreenShare = (customScreenShareTrack = undefined) => {\n const localScreenShareOn = localScreenShareOnRef.current;\n\n if (localScreenShareOn) {\n disableScreenShare();\n } else {\n enableScreenShare(customScreenShareTrack);\n }\n };\n\n const changeMode = mode => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeMode(mode);\n }\n };\n\n const sendChatMessage = text => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.sendChatMessage(text);\n }\n };\n const respondEntry = (participantId, decision) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.respondEntry(participantId, decision);\n }\n };\n const getMics = async () => {\n const meeting = meetingRef.current;\n if (meeting) {\n return await meeting.getMics();\n }\n };\n const getWebcams = async () => {\n const meeting = meetingRef.current;\n if (meeting) {\n return await meeting.getWebcams();\n }\n };\n const changeWebcam = obj => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeWebcam(obj);\n }\n };\n const changeMic = obj => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeMic(obj);\n }\n };\n const startVideo = ({ link }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startVideo({ link });\n }\n };\n\n const stopVideo = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopVideo();\n }\n };\n\n const resumeVideo = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.resumeVideo();\n }\n };\n\n const pauseVideo = ({ currentTime }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.pauseVideo({ currentTime });\n }\n };\n\n const seekVideo = ({ currentTime }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.seekVideo({ currentTime });\n }\n };\n\n const startLivestream = (streamInfo, config) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startLivestream(streamInfo, config);\n }\n };\n\n const stopLivestream = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopLivestream();\n }\n };\n\n const connectTo = async ({ meetingId, payload }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n await meeting.connectTo({ meetingId, payload });\n }\n };\n\n const startHls = config => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startHls(config);\n }\n };\n\n const stopHls = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopHls();\n }\n };\n\n const initSDK = () => {\n VideoSDK.config(tokenRef.current);\n\n if (deviceInfo) {\n VideoSDK.analytics(deviceInfo);\n } else {\n VideoSDK.analytics({\n sdkType: 'react-web',\n sdkVersion: reactSDKVersion\n });\n }\n\n if (joinWithoutUserInteraction) {\n join();\n }\n };\n\n useEffect(() => {\n initSDK();\n }, []);\n\n useEffect(() => {\n if (reinitialiseMeetingOnConfigChange && joinedOnFirstRender.current) {\n leave();\n initSDK();\n !joinWithoutUserInteraction && join();\n }\n }, [config.meetingId, token, reinitialiseMeetingOnConfigChange]);\n\n return (\n <MeetingProviderContex.Provider\n value={{\n meetingId: meeting?.id,\n meeting,\n baseUrl: meeting?.baseUrl,\n localParticipant,\n mainParticipant,\n activeSpeakerId,\n participants,\n presenterId,\n localMicOn,\n localWebcamOn,\n localScreenShareOn,\n messages,\n isRecording,\n isLiveStreaming,\n pinnedParticipants,\n connections,\n isHls,\n recordingState,\n livestreamState,\n hlsState,\n isMeetingJoined,\n //\n join,\n leave,\n end,\n //\n startRecording,\n stopRecording,\n //\n sendChatMessage,\n respondEntry,\n //\n muteMic,\n unmuteMic,\n toggleMic,\n //\n disableWebcam,\n enableWebcam,\n toggleWebcam,\n //\n disableScreenShare,\n enableScreenShare,\n toggleScreenShare,\n //\n getMics,\n getWebcams,\n changeWebcam,\n changeMic,\n changeMode,\n startVideo,\n stopVideo,\n resumeVideo,\n pauseVideo,\n seekVideo,\n startLivestream,\n stopLivestream,\n connectTo,\n\n startHls,\n stopHls\n }}\n >\n {children}\n </MeetingProviderContex.Provider>\n );\n};\n\nexport default MeetingProvider;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\nimport { eventEmitter, events } from '../utils';\n\n/**\n *\n * @param {string} participantId\n * @param {{\n * onStreamDisabled?: Function,\n * onStreamEnabled?: Function,\n * onMediaStatusChanged?: Function,\n * onVideoQualityChanged?: Function,\n * }} options\n *\n * @returns {{\n * displayName: string;\n * participant: Participant;\n * webcamStream: MediaStreamTrack;\n * micStream: MediaStreamTrack;\n * screenShareStream: MediaStreamTrack;\n * webcamOn: boolean;\n * micOn: boolean;\n * screenShareOn: boolean;\n * isLocal: boolean;\n * isActiveSpeaker: boolean;\n * isMainParticipant: boolean;\n * pinState: any;\n * mode: \"CONFERENCE\" | \"VIEWER\",\n * consumeMicStreams: () => void;\n * consumeWebcamStreams: () => void;\n * stopConsumingMicStreams: () => void;\n * stopConsumingWebcamStreams: () => void;\n * setQuality: (quality: \"low\" | \"med\" | 'high') => void;\n * setViewPort: (width: number, height: number) => void;\n * enableMic: () => void;\n * disableMic: () => void;\n * enableWebcam: () => void;\n * disableWebcam: () => void;\n * pin: (data: \"SHARE_AND_CAM\" | \"CAM\" | \"SHARE\") => void;\n * unpin: (data: \"SHARE_AND_CAM\" | \"CAM\" | \"SHARE\") => void;\n * switchTo: ({ meetingId, payload, token }: {\n * meetingId: string;\n * payload: string;\n * token: string;\n * }) => Promise<void>;\n * getAudioStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object\n * }]>;\n * getVideoStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object,\n * currentSpatialLayer: number,\n * currentTemporalLayer: number,\n * preferredSpatialLayer: number,\n * preferredTemporalLayer: number\n * }]>;\n * getShareStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object,\n * currentSpatialLayer: number,\n * currentTemporalLayer: number,\n * preferredSpatialLayer: number,\n * preferredTemporalLayer: number\n * }]>;\n *}}\n *\n */\nconst useParticipant = (\n participantId,\n {\n onStreamEnabled = () => {},\n onStreamDisabled = () => {},\n onMediaStatusChanged = () => {},\n onVideoQualityChanged = () => {}\n } = {}\n) => {\n const [webcamStream, setwebcamStream] = useState(null);\n const [micStream, setMicStream] = useState(null);\n const [screenShareStream, setScreenShareStream] = useState(null);\n const [screenShareAudioStream, setScreenShareAudioStream] = useState(null);\n\n const meeting = useMeeting();\n\n const {\n participants,\n localParticipant,\n activeSpeakerId,\n mainParticipant,\n pinState\n } = useMemo(() => {\n const participants = meeting?.participants;\n const localParticipant = meeting?.localParticipant;\n const activeSpeakerId = meeting?.activeSpeakerId;\n const mainParticipant = meeting?.mainParticipant;\n const pinState = meeting?.pinnedParticipants?.get(participantId) || {\n cam: false,\n share: false\n };\n\n // const micOn = meeting?.participants?.get(participantId).micOn || false;\n // const webcamOn = meeting?.participants?.get(participantId).webcamOn || false;\n\n return {\n participants,\n localParticipant,\n activeSpeakerId,\n mainParticipant,\n pinState\n };\n }, [meeting]);\n\n /**\n * @type {Participant}\n */\n const participant = participants?.get(participantId);\n\n const [webcamOn, setWebcamOn] = useState(participant?.webcamOn);\n const [micOn, setMicOn] = useState(participant?.micOn);\n const [mode, setMode] = useState(participant?.mode);\n\n const setTrack = stream => {\n if (stream.track.readyState === 'live') {\n switch (stream.kind) {\n case 'video':\n if (webcamStream != null) {\n setwebcamStream(null);\n }\n setwebcamStream(stream);\n break;\n case 'audio':\n if (micStream != null) {\n setMicStream(null);\n }\n setMicStream(stream);\n break;\n case 'share':\n if (screenShareStream != null) {\n setScreenShareStream(null);\n }\n setScreenShareStream(stream);\n break;\n case 'shareAudio':\n if (screenShareAudioStream != null) {\n setScreenShareAudioStream(null);\n }\n setScreenShareAudioStream(stream);\n break;\n default:\n break;\n }\n }\n };\n\n const unSetTrack = stream => {\n if (stream.track.readyState !== 'live') {\n switch (stream.kind) {\n case 'video':\n setwebcamStream(null);\n break;\n case 'audio':\n setMicStream(null);\n break;\n case 'share':\n setScreenShareStream(null);\n break;\n case 'shareAudio':\n setScreenShareAudioStream(null);\n break;\n default:\n break;\n }\n }\n };\n\n const _handleStreamEnabled = stream => {\n setTrack(stream);\n onStreamEnabled(stream);\n };\n\n const _handleParticipantModeChanged = data => {\n console.log('## FINAL', data);\n if (participantId === data.participantId) {\n setMode(data.mode);\n }\n };\n\n const _handleStreamDisabled = stream => {\n unSetTrack(stream);\n onStreamDisabled(stream);\n };\n\n const _handleVideoQualityChanged = data => {\n const { peerId, prevQuality, currentQuality } = data;\n onVideoQualityChanged({ peerId, prevQuality, currentQuality });\n };\n\n const _handleMediaStatusChanged = data => {\n const { kind, peerId, newStatus } = data;\n if (kind == 'audio') {\n setMicOn(newStatus);\n } else if (kind == 'video') {\n setWebcamOn(newStatus);\n }\n onMediaStatusChanged({ kind, peerId, newStatus });\n };\n\n const setQuality = quality => {\n participant?.setQuality(quality);\n };\n\n const setViewPort = (width, height) => {\n participant?.setViewPort(width, height);\n };\n\n const enableMic = () => {\n participant?.enableMic();\n };\n const disableMic = () => {\n participant?.disableMic();\n };\n const enableWebcam = () => {\n participant?.enableWebcam();\n };\n const disableWebcam = () => {\n participant?.disableWebcam();\n };\n const pin = data => {\n participant?.pin(data);\n };\n const unpin = data => {\n participant?.unpin(data);\n };\n const getAudioStats = async () => {\n return participant?.getAudioStats();\n };\n const getVideoStats = async () => {\n return participant?.getVideoStats();\n };\n const getShareStats = async () => {\n return participant?.getShareStats();\n };\n\n const consumeWebcamStreams = () => {\n participant?.consumeWebcamStreams();\n };\n const consumeMicStreams = () => {\n participant?.consumeMicStreams();\n };\n const stopConsumingWebcamStreams = () => {\n participant?.stopConsumingWebcamStreams();\n };\n const stopConsumingMicStreams = () => {\n participant?.stopConsumingMicStreams();\n };\n const switchTo = async data => {\n await participant?.switchTo(data);\n };\n\n useEffect(() => {\n const streams = participant?.streams;\n\n if (streams) {\n streams.forEach(stream => {\n setTrack(stream);\n });\n }\n\n if (participant?.micOn) {\n setMicOn(micOn);\n }\n\n if (participant?.webcamOn) {\n setWebcamOn(webcamOn);\n }\n\n participant?.on('stream-enabled', _handleStreamEnabled);\n\n participant?.on('stream-disabled', _handleStreamDisabled);\n\n participant?.on('media-status-changed', _handleMediaStatusChanged);\n\n participant?.on('video-quality-changed', _handleVideoQualityChanged);\n\n eventEmitter.on(\n events['participant-mode-changed'],\n _handleParticipantModeChanged\n );\n\n return () => {\n participant?.off('stream-enabled', _handleStreamEnabled);\n\n participant?.off('stream-disabled', _handleStreamDisabled);\n\n participant?.off('media-status-changed', _handleMediaStatusChanged);\n\n participant?.off('video-quality-changed', _handleVideoQualityChanged);\n\n eventEmitter.off(\n events['participant-mode-changed'],\n _handleParticipantModeChanged\n );\n };\n }, [participant]);\n\n return {\n displayName: participant?.displayName,\n participant,\n webcamStream,\n micStream,\n screenShareStream,\n screenShareAudioStream,\n webcamOn: webcamOn || !!webcamStream,\n micOn: micOn || !!micStream,\n mode: mode,\n\n screenShareOn: !!screenShareStream,\n isLocal: localParticipant?.id === participantId,\n isActiveSpeaker: activeSpeakerId === participantId,\n isMainParticipant: mainParticipant?.id === participantId,\n pinState,\n\n //\n consumeMicStreams,\n consumeWebcamStreams,\n stopConsumingMicStreams,\n stopConsumingWebcamStreams,\n setQuality,\n setViewPort,\n enableMic,\n disableMic,\n enableWebcam,\n disableWebcam,\n pin,\n unpin,\n switchTo,\n getAudioStats,\n getVideoStats,\n getShareStats\n };\n};\n\nexport default useParticipant;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n/**\n *\n * @param {string} connectionId\n * @param {{onMeeting:{\n * onParticipantJoined?: Function,\n * onParticipantLeft?: Function,\n * onChatMessage?: Function\n * }}}\n * @returns {{\n * connection: {\n * id: string;\n * close: Function;\n * payload: string;\n * meeting: {\n * id: string;\n * sendChatMessage: Function;\n * end: Function;\n * participants: Array<ConnectionParticipant>;\n * };\n * }}}\n */\nconst useConnection = (\n connectionId,\n { onMeeting } = {\n onMeeting: {\n onParticipantJoined: () => {},\n onParticipantLeft: () => {},\n onChatMessage: () => {}\n }\n }\n) => {\n const onParticipantJoined = onMeeting?.onParticipantJoined;\n const onParticipantLeft = onMeeting?.onParticipantLeft;\n const onChatMessage = onMeeting?.onChatMessage;\n\n const meeting = useMeeting();\n\n const { connection, connectionParticipants } = useMemo(() => {\n const connection = meeting?.connections.get(connectionId);\n\n if (!connection) {\n throw new Error('connectionId not found');\n }\n\n const connectionParticipants = new Map(connection.meeting.participants);\n\n return {\n connection,\n connectionParticipants\n };\n }, [meeting]);\n\n const [_connectionParticipants, setConnectionParticipants] = useState(\n new Map(connectionParticipants)\n );\n\n const _handleParticipantJoined = participant => {\n setConnectionParticipants(s => {\n s.set(participant.id, participant);\n const participantsToSet = new Map(s);\n return participantsToSet;\n });\n onParticipantJoined(participant);\n };\n const _handleParticipantLeft = participantId => {\n setConnectionParticipants(s => {\n s.delete(participantId);\n const newParticipants = new Map(s);\n return newParticipants;\n });\n onParticipantLeft(participantId);\n };\n\n const _handleChatMessage = data => {\n onChatMessage(data);\n };\n\n useEffect(() => {\n connection?.meeting.on('participant-joined', _handleParticipantJoined);\n connection?.meeting.on('participant-left', _handleParticipantLeft);\n connection?.meeting.on('chat-message', _handleChatMessage);\n\n return () => {\n connection?.meeting.off('participant-joined', _handleParticipantJoined);\n connection?.meeting.off('participant-left', _handleParticipantLeft);\n connection?.meeting.off('chat-message', _handleChatMessage);\n };\n }, [connection]);\n\n return {\n connection: {\n id: connection.id,\n close: connection.close,\n payload: connection.payload,\n meeting: {\n id: connection.meeting.id,\n sendChatMessage: connection.meeting.sendChatMessage,\n end: connection.meeting.end,\n participants: _connectionParticipants\n }\n }\n };\n};\n\nexport default useConnection;\n","import { useEffect, useRef, useState } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n\n/**\n *\n * @param {string} topic\n * @param {{\n * onMessageReceived?: Function,\n * onOldMessagesReceived?: Function,\n * }} options\n * @returns {{\n * publish: (message: string,{persist: boolean}) => void\n * messages: Array<{\n * id: string,\n * message: string,\n * senderId: string,\n * senderName: string,\n * timestamp: string,\n * topic: string\n * }>\n * }}\n */\nconst usePubSub = (\n topic,\n { onMessageReceived = () => {}, onOldMessagesReceived = () => {} } = {}\n) => {\n const { meeting, isMeetingJoined } = useMeeting();\n const [messages, setMessages] = useState([]);\n const isSubscribed = useRef(false);\n\n /**\n *\n * @param {string} message\n * @param {{persist: boolean}} options\n */\n const publish = (message, options) => {\n if (meeting) {\n meeting.pubSub.publish(topic, message, options);\n }\n };\n\n const _handlePubSub = data => {\n setMessages(s => [...s, data]);\n onMessageReceived(data);\n };\n\n const subscribeToPubsub = async meeting => {\n const data = await meeting?.pubSub?.subscribe(topic, _handlePubSub);\n if (data) {\n onOldMessagesReceived(data.messages);\n setMessages(data.messages);\n }\n };\n\n useEffect(() => {\n if (meeting && !isSubscribed.current && isMeetingJoined) {\n isSubscribed.current = true;\n subscribeToPubsub(meeting);\n\n return () => {\n meeting?.pubSub?.unsubscribe(topic, _handlePubSub);\n };\n }\n }, [meeting, isMeetingJoined]);\n\n return { publish, messages };\n};\n\nexport default usePubSub;\n","import MeetingProvider from './meeting/MeetingProvider';\nimport {\n MeetingConsumer,\n useMeeting\n} from './meeting/meetingProviderContextDef';\nimport useParticipant from './participant/useParticipant';\nimport useConnection from './connection/useConnection';\nimport usePubSub from './pubSub/usePubSub';\nimport { VideoSDK } from '@videosdk.live/js-sdk';\n\nconst Constants = VideoSDK.Constants;\n\n/**\n * @param {{\n * cameraId?: string | undefined,\n * encoderConfig?: \"h90p_w160p\" | \"h180p_w320p\" | \"h216p_w384p\"\n * | \"h360p_w640p\" | \"h540p_w960p\" | \"h720p_w1280p\" | \"h1080p_w1920p\"\n * | \"h1440p_w2560p\" | \"h2160p_w3840p\" | \"h120p_w160p\" | \"h180p_w240p\"\n * | \"h240p_w320p\" | \"h360p_w480p\" | \"h480p_w640p\" | \"h540p_w720p\"\n * | \"h720p_w960p\" | \"h1080p_w1440p\" | \"h1440p_w1920p\" | undefined,\n * facingMode?: \"front\" | \"environment\" | undefined,\n * optimizationMode?: \"text\"| \"motion\" | \"detail\" | undefined\n * multiStream?: boolean\n * }}\n */\nconst createCameraVideoTrack = async ({\n cameraId = undefined,\n encoderConfig = undefined,\n facingMode = undefined,\n optimizationMode = undefined,\n multiStream = true\n}) => {\n return await VideoSDK.createCameraVideoTrack({\n cameraId,\n encoderConfig,\n facingMode,\n optimizationMode,\n multiStream\n });\n};\n\n/**\n * @param {{\n * encoderConfig?: \"h360p_30fps\" | \"h720p_5fps\" | \"h720p_15fps\"\n * | \"h1080p_15fps\" | \"h1080p_30fps\" | undefined,\n * optimizationMode?: \"text\"| \"motion\" | \"detail\" | undefined,\n * withAudio?:\"enable\" | \"disable\"\n * }}\n */\nconst createScreenShareVideoTrack = async ({\n encoderConfig = undefined,\n optimizationMode = undefined,\n withAudio = 'enable'\n}) => {\n return await VideoSDK.createScreenShareVideoTrack({\n encoderConfig,\n optimizationMode,\n withAudio\n });\n};\n\n/**\n * @param {{\n * noiseConfig?: {\n * echoCancellation: boolean,\n * autoGainControl: boolean,\n * noiseSuppression: boolean\n * } | undefined,\n * encoderConfig?: \"speech_low_quality\"\n * | \"speech_standard\" | \"music_standard\"\n * | \"standard_stereo\" | \"high_quality\"\n * | \"high_quality_stereo\" | undefined\n * microphoneId?: string | undefined\n * }}\n */\nconst createMicrophoneAudioTrack = async ({\n noiseConfig = undefined,\n encoderConfig = undefined,\n microphoneId = undefined\n}) => {\n return await VideoSDK.createMicrophoneAudioTrack({\n noiseConfig,\n encoderConfig,\n microphoneId\n });\n};\n\nexport {\n MeetingProvider,\n useMeeting,\n useParticipant,\n usePubSub,\n MeetingConsumer,\n useConnection,\n Constants,\n createCameraVideoTrack,\n createMicrophoneAudioTrack,\n createScreenShareVideoTrack\n};\n"],"names":["eventPrifix","events","error","eventEmitter","EventEmitter","setMaxListeners","MeetingProviderContex","createContext","useMeeting","onParticipantJoined","onParticipantLeft","onSpeakerChanged","onPresenterChanged","onMainParticipantChanged","onEntryRequested","onEntryResponded","onRecordingStarted","onRecordingStopped","onChatMessage","onMeetingJoined","onMeetingLeft","onLiveStreamStarted","onLiveStreamStopped","onVideoStateChanged","onVideoSeeked","onWebcamRequested","onMicRequested","onPinStateChanged","onConnectionOpen","onConnetionClose","onSwitchMeeting","onError","onHlsStarted","onHlsStopped","onHlsStateChanged","onRecordingStateChanged","onLivestreamStateChanged","onMeetingStateChanged","onParticipantModeChanged","useEffect","on","off","useContext","MeetingConsumer","children","MeetingProvider","config","token","joinWithoutUserInteraction","_reinitialiseMeetingOnConfigChange","reinitialiseMeetingOnConfigChange","deviceInfo","useState","meeting","setMeeting","localParticipant","setLocalParticipant","mainParticipant","setMainParticipant","activeSpeakerId","setActiveSpeakerId","presenterId","setPresenterId","localMicOn","setLocalMicOn","localWebcamOn","setLocalWebcamOn","localScreenShareOn","setLocalScreenShareOn","isRecording","setIsRecording","messages","setMessages","Map","participants","setParticipants","pinnedParticipants","setPinnedParticipants","isLiveStreaming","setIsLiveStreaming","connections","setConnections","isMeetingJoined","setIsMeetingJoined","isHls","setIsHls","recordingState","setRecordingState","livestreamState","setLivestreamState","hlsState","setHlsState","meetingRef","useRef","localMicOnRef","localWebcamOnRef","localScreenShareOnRef","isRecordingRef","configRef","tokenRef","joinedOnFirstRender","isHlsRef","useMemo","current","resetStates","_handle_participant_joined","participant","set","id","participantsToSet","emit","_handle_participant_left","newParticipants","_handle_presenter_changed","_handle_main_participant_changed","_handle_speaker_changed","_handle_chat_message","data","s","_handle_entry_requested","_handle_entry_responded","participantId","decision","_handle_recording_started","_handle_recording_stopped","_handle_localParticipant_stream_enabled","stream","track","readyState","kind","_handle_localParticipant_stream_disabled","_handle_live_stream_started","_handle_live_stream_stopped","_handle_hls_started","_handle_hls_stopped","_handle_video_state_changed","_handle_video_seeked","_handle_webcam_requested","_handle_mic_requested","_handle_meeting_joined","_handle_meeting_left","_handle_meeting_state_changed","_handle_pin_state_changed","_handle_connection_open","_handle_connection_close","_handle_switch_meeting","_handle_error","_handle_recording_state_changed","_handle_livestream_state_changed","_handle_hls_state_changed","_handel_participant_mode_changed","state","pinnedBy","cam","share","pinnedParticipantsToSet","connection","connectionsToSet","connectionId","newConnections","d","status","part","get","mode","join","VideoSDK","initMeeting","leave","end","startRecording","webhookUrl","awsDirPath","stopRecording","unmuteMic","customAudioTrack","undefined","muteMic","toggleMic","disableWebcam","enableWebcam","customVideoTrack","toggleWebcam","disableScreenShare","enableScreenShare","customScreenShareTrack","toggleScreenShare","changeMode","sendChatMessage","text","respondEntry","getMics","getWebcams","changeWebcam","obj","changeMic","startVideo","link","stopVideo","resumeVideo","pauseVideo","currentTime","seekVideo","startLivestream","streamInfo","stopLivestream","connectTo","meetingId","payload","startHls","stopHls","initSDK","analytics","sdkType","sdkVersion","reactSDKVersion","baseUrl","useParticipant","onStreamEnabled","onStreamDisabled","onMediaStatusChanged","onVideoQualityChanged","webcamStream","setwebcamStream","micStream","setMicStream","screenShareStream","setScreenShareStream","screenShareAudioStream","setScreenShareAudioStream","pinState","webcamOn","setWebcamOn","micOn","setMicOn","setMode","setTrack","unSetTrack","_handleStreamEnabled","_handleParticipantModeChanged","console","log","_handleStreamDisabled","_handleVideoQualityChanged","peerId","prevQuality","currentQuality","_handleMediaStatusChanged","newStatus","setQuality","quality","setViewPort","width","height","enableMic","disableMic","pin","unpin","getAudioStats","getVideoStats","getShareStats","consumeWebcamStreams","consumeMicStreams","stopConsumingWebcamStreams","stopConsumingMicStreams","switchTo","streams","forEach","displayName","screenShareOn","isLocal","isActiveSpeaker","isMainParticipant","useConnection","onMeeting","Error","connectionParticipants","_connectionParticipants","setConnectionParticipants","_handleParticipantJoined","_handleParticipantLeft","_handleChatMessage","close","usePubSub","topic","onMessageReceived","onOldMessagesReceived","isSubscribed","publish","message","options","pubSub","_handlePubSub","subscribeToPubsub","subscribe","unsubscribe","Constants","createCameraVideoTrack","cameraId","encoderConfig","facingMode","optimizationMode","multiStream","createScreenShareVideoTrack","withAudio","createMicrophoneAudioTrack","noiseConfig","microphoneId"],"mappings":"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"}
1
+ {"version":3,"file":"index.modern.js","sources":["../src/utils.js","../src/meeting/meetingProviderContextDef.js","../src/meeting/MeetingProvider.js","../src/participant/useParticipant.js","../src/connection/useConnection.js","../src/pubSub/usePubSub.js","../src/index.js"],"sourcesContent":["import EventEmitter from 'events';\n\nconst eventPrifix = 'videosdk-live-react-sdk';\n\nconst events = {\n 'participant-joined': `${eventPrifix}-participant-joined`,\n 'participant-left': `${eventPrifix}-participant-left`,\n 'speaker-changed': `${eventPrifix}-speaker-changed`,\n 'presenter-changed': `${eventPrifix}-presenter-changed`,\n 'main-participant-changed': `${eventPrifix}-main-participant-changed`,\n 'entry-requested': `${eventPrifix}-entry-requested`,\n 'entry-responded': `${eventPrifix}-entry-responded`,\n 'recording-started': `${eventPrifix}-recording-started`,\n 'recording-stopped': `${eventPrifix}-recording-stopped`,\n 'chat-message': `${eventPrifix}-chat-message`,\n 'meeting-joined': `${eventPrifix}-meeting-joined`,\n 'meeting-left': `${eventPrifix}-meeting-left`,\n 'live-stream-started': `${eventPrifix}-live-stream-started`,\n 'live-stream-stopped': `${eventPrifix}-live-stream-stopped`,\n 'video-state-changed': `${eventPrifix}-video-state-changed`,\n 'video-seeked': `${eventPrifix}-video-seeked`,\n 'webcam-requested': `${eventPrifix}-webcam-requested`,\n 'mic-requested': `${eventPrifix}-mic-requested`,\n 'pin-state-changed': `${eventPrifix}-pin-state-changed`,\n 'connection-open': `${eventPrifix}-connection-open`,\n 'connection-close': `${eventPrifix}-connection-close`,\n 'switch-meeting': `${eventPrifix}-switch-meeting`,\n error: `${eventPrifix}-error`,\n 'hls-started': `${eventPrifix}-hls-started`,\n 'hls-stopped': `${eventPrifix}-hls-stopped`,\n 'hls-state-changed': `${eventPrifix}-hls-state-changed`,\n 'recording-state-changed': `${eventPrifix}-recording-state-changed`,\n 'livestream-state-changed': `${eventPrifix}-livestream-state-changed`,\n 'meeting-state-changed': `${eventPrifix}-meeting-state-changed`,\n 'participant-mode-changed': `${eventPrifix}-participant-mode-changed`\n};\n\nconst eventEmitter = new EventEmitter();\neventEmitter.setMaxListeners(9999);\n\nexport { eventEmitter, events };\n","import React from 'react';\nimport { useContext, createContext, useEffect } from 'react';\nimport { eventEmitter, events } from '../utils';\nexport const MeetingProviderContex = createContext();\n\n/**\n *\n * @param {{\n * onParticipantJoined?: () => void;\n * onParticipantLeft?: () => void;\n * onSpeakerChanged?: () => void;\n * onPresenterChanged?: () => void;\n * onMainParticipantChanged?: () => void;\n * onEntryRequested?: () => void;\n * onEntryResponded?: () => void;\n * onRecordingStarted?: () => void;\n * onRecordingStopped?: () => void;\n * onChatMessage?: () => void;\n * onMeetingJoined?: () => void;\n * onMeetingLeft?: () => void;\n * onLiveStreamStarted?: () => void;\n * onLiveStreamStopped?: () => void;\n * onVideoStateChanged?: () => void;\n * onVideoSeeked?: () => void;\n * onWebcamRequested?: () => void;\n * onMicRequested?: () => void;\n * onPinStateChanged?: () => void;\n * onConnectionOpen?: () => void;\n * onConnetionClose?: () => void;\n * onSwitchMeeting?: () => void;\n * onError?: () => void;\n * onHlsStarted?: () => void;\n * onHlsStopped?: () => void;\n * onHlsStateChanged?: () => void;\n * onRecordingStateChanged?: () => void;\n * onLivestreamStateChanged?: () => void;\n * onMeetingStateChanged?: () => void;\n *}}\n * @returns {{\n * meetingId: string,\n * meeting: Meeting,\n * localParticipant: Participant,\n * activeSpeakerId: string,\n * participants: Map<string, Participant>,\n * pinnedParticipants: Map<string, {cam:boolean, share:boolean}>,\n * presenterId: string,\n * localMicOn: boolean,\n * localWebcamOn: boolean,\n * isRecording: boolean,\n * isLiveStreaming: boolean,\n * localScreenShareOn: boolean,\n * connections: Map<string, Connection>,\n * join: () => void\n * leave: () => void\n * end: () => void\n * enableMic: (customAudioTrack?: MediaStream | undefined) => void\n * disableMic: () => void\n * toggleMic: (customAudioTrack?: MediaStream | undefined) => void\n * enableWebcam: (customVideoTrack?: MediaStream | undefined) => void\n * disableWebcam: () => void\n * toggleWebcam: (customVideoTrack?: MediaStream | undefined) => void\n * enableScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * disableScreenShare: () => void\n * toggleScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * startRecording: (webhookUrl?: string, awsDirPath?: string, config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * };\n * }) => void\n * stopRecording: () => void\n * startLiveStream: (outputs: Array<{\n * url: string;\n * streamKey: string;\n * }>,\n * config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * };\n * }) => void\n * stopLiveStream: () => void\n * startHls: (config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * };\n * }) => void\n * stopHls: () => void\n * getMics: () => Promise<{\n * deviceId: string;\n * label: string;\n * }[]>void\n * getWebcams: () => Promise<{\n * deviceId: string;\n * label: string;\n * facingMode: \"environment\" | \"front\"\n * }[]>void\n * changeMic: (object: string | MediaStream) => void\n * changeWebcam: (object: string | MediaStream) => void\n * startVideo: ({ link }: {\n * link: string;\n * }) => void\n * stopVideo: () => void\n * pauseVideo: ({ currentTime }: {\n * currentTime: number;\n * }) => void\n * resumeVideo: () => void\n * seekVideo: ({ currentTime }: {\n * currentTime: number;\n * }) => void\n * connectTo: ({ meetingId, payload }: {\n * meetingId: string;\n * payload: string;\n * }) => void\n *\n * }}\n */\nexport const useMeeting = ({\n onParticipantJoined = () => {},\n onParticipantLeft = () => {},\n onSpeakerChanged = () => {},\n onPresenterChanged = () => {},\n onMainParticipantChanged = () => {},\n onEntryRequested = () => {},\n onEntryResponded = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onChatMessage = () => {},\n onMeetingJoined = () => {},\n onMeetingLeft = () => {},\n onLiveStreamStarted = () => {},\n onLiveStreamStopped = () => {},\n onVideoStateChanged = () => {},\n onVideoSeeked = () => {},\n onWebcamRequested = () => {},\n onMicRequested = () => {},\n onPinStateChanged = () => {},\n onConnectionOpen = () => {},\n onConnetionClose = () => {},\n onSwitchMeeting = () => {},\n onError = () => {},\n onHlsStarted = () => {},\n onHlsStopped = () => {},\n onHlsStateChanged = () => {},\n onRecordingStateChanged = () => {},\n onLivestreamStateChanged = () => {},\n onMeetingStateChanged = () => {},\n onParticipantModeChanged = () => {}\n} = {}) => {\n useEffect(() => {\n eventEmitter.on(events['participant-joined'], onParticipantJoined);\n eventEmitter.on(events['participant-left'], onParticipantLeft);\n eventEmitter.on(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.on(events['presenter-changed'], onPresenterChanged);\n eventEmitter.on(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.on(events['entry-requested'], onEntryRequested);\n eventEmitter.on(events['entry-responded'], onEntryResponded);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['chat-message'], onChatMessage);\n eventEmitter.on(events['meeting-joined'], onMeetingJoined);\n eventEmitter.on(events['meeting-left'], onMeetingLeft);\n eventEmitter.on(events['live-stream-started'], onLiveStreamStarted);\n eventEmitter.on(events['live-stream-stopped'], onLiveStreamStopped);\n eventEmitter.on(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.on(events['video-seeked'], onVideoSeeked);\n eventEmitter.on(events['webcam-requested'], onWebcamRequested);\n eventEmitter.on(events['mic-requested'], onMicRequested);\n eventEmitter.on(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.on(events['connection-open'], onConnectionOpen);\n eventEmitter.on(events['connection-close'], onConnetionClose);\n eventEmitter.on(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.on(events['error'], onError);\n eventEmitter.on(events['hls-started'], onHlsStarted);\n eventEmitter.on(events['hls-stopped'], onHlsStopped);\n eventEmitter.on(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.on(events['recording-state-changed'], onRecordingStateChanged);\n eventEmitter.on(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.on(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n\n return () => {\n eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.off(events['participant-joined'], onParticipantJoined);\n eventEmitter.off(events['participant-left'], onParticipantLeft);\n eventEmitter.off(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.off(events['presenter-changed'], onPresenterChanged);\n eventEmitter.off(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.off(events['entry-requested'], onEntryRequested);\n eventEmitter.off(events['entry-responded'], onEntryResponded);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['chat-message'], onChatMessage);\n eventEmitter.off(events['meeting-joined'], onMeetingJoined);\n eventEmitter.off(events['meeting-left'], onMeetingLeft);\n eventEmitter.off(events['live-stream-started'], onLiveStreamStarted);\n eventEmitter.off(events['live-stream-stopped'], onLiveStreamStopped);\n eventEmitter.off(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.off(events['video-seeked'], onVideoSeeked);\n eventEmitter.off(events['webcam-requested'], onWebcamRequested);\n eventEmitter.off(events['mic-requested'], onMicRequested);\n eventEmitter.off(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.off(events['connection-open'], onConnectionOpen);\n eventEmitter.off(events['connection-close'], onConnetionClose);\n eventEmitter.off(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.off(events['error'], onError);\n eventEmitter.off(events['hls-started'], onHlsStarted);\n eventEmitter.off(events['hls-stopped'], onHlsStopped);\n eventEmitter.off(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.off(\n events['recording-state-changed'],\n onRecordingStateChanged\n );\n eventEmitter.off(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.off(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n };\n }, []);\n return useContext(MeetingProviderContex);\n};\n\nexport const MeetingConsumer = ({\n children,\n onParticipantJoined = () => {},\n onParticipantLeft = () => {},\n onSpeakerChanged = () => {},\n onPresenterChanged = () => {},\n onMainParticipantChanged = () => {},\n onEntryRequested = () => {},\n onEntryResponded = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onChatMessage = () => {},\n onMeetingJoined = () => {},\n onMeetingLeft = () => {},\n onLiveStreamStarted = () => {},\n onLiveStreamStopped = () => {},\n onVideoStateChanged = () => {},\n onVideoSeeked = () => {},\n onWebcamRequested = () => {},\n onMicRequested = () => {},\n onPinStateChanged = () => {},\n onConnectionOpen = () => {},\n onConnetionClose = () => {},\n onSwitchMeeting = () => {},\n onError = () => {},\n onHlsStarted = () => {},\n onHlsStopped = () => {},\n onHlsStateChanged = () => {},\n onRecordingStateChanged = () => {},\n onLivestreamStateChanged = () => {},\n onMeetingStateChanged = () => {},\n onParticipantModeChanged = () => {}\n}) => {\n useEffect(() => {\n eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.on(events['participant-joined'], onParticipantJoined);\n eventEmitter.on(events['participant-left'], onParticipantLeft);\n eventEmitter.on(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.on(events['presenter-changed'], onPresenterChanged);\n eventEmitter.on(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.on(events['entry-requested'], onEntryRequested);\n eventEmitter.on(events['entry-responded'], onEntryResponded);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['chat-message'], onChatMessage);\n eventEmitter.on(events['meeting-joined'], onMeetingJoined);\n eventEmitter.on(events['meeting-left'], onMeetingLeft);\n eventEmitter.on(events['live-stream-enabled'], onLiveStreamStarted);\n eventEmitter.on(events['live-stream-disabled'], onLiveStreamStopped);\n eventEmitter.on(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.on(events['video-seeked'], onVideoSeeked);\n eventEmitter.on(events['webcam-requested'], onWebcamRequested);\n eventEmitter.on(events['mic-requested'], onMicRequested);\n eventEmitter.on(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.on(events['connection-open'], onConnectionOpen);\n eventEmitter.on(events['connection-close'], onConnetionClose);\n eventEmitter.on(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.on(events['error'], onError);\n eventEmitter.on(events['hls-started'], onHlsStarted);\n eventEmitter.on(events['hls-stopped'], onHlsStopped);\n eventEmitter.on(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.on(events['recording-state-changed'], onRecordingStateChanged);\n eventEmitter.on(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.on(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n\n return () => {\n eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.off(events['participant-joined'], onParticipantJoined);\n eventEmitter.off(events['participant-left'], onParticipantLeft);\n eventEmitter.off(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.off(events['presenter-changed'], onPresenterChanged);\n eventEmitter.off(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.off(events['entry-requested'], onEntryRequested);\n eventEmitter.off(events['entry-responded'], onEntryResponded);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['chat-message'], onChatMessage);\n eventEmitter.off(events['meeting-joined'], onMeetingJoined);\n eventEmitter.off(events['meeting-left'], onMeetingLeft);\n eventEmitter.off(events['live-stream-enabled'], onLiveStreamStarted);\n eventEmitter.off(events['live-stream-disabled'], onLiveStreamStopped);\n eventEmitter.off(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.off(events['video-seeked'], onVideoSeeked);\n eventEmitter.off(events['webcam-requested'], onWebcamRequested);\n eventEmitter.off(events['mic-requested'], onMicRequested);\n eventEmitter.off(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.off(events['connection-open'], onConnectionOpen);\n eventEmitter.off(events['connection-close'], onConnetionClose);\n eventEmitter.off(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.off(events['error'], onError);\n eventEmitter.off(events['hls-started'], onHlsStarted);\n eventEmitter.off(events['hls-stopped'], onHlsStopped);\n eventEmitter.off(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.off(\n events['recording-state-changed'],\n onRecordingStateChanged\n );\n eventEmitter.off(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.off(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n };\n }, []);\n\n return (\n <React.Fragment>\n <MeetingProviderContex.Consumer>\n {children}\n </MeetingProviderContex.Consumer>\n </React.Fragment>\n );\n};\n","import { MeetingProviderContex } from './meetingProviderContextDef';\nimport React, { useEffect, useRef, useState, useMemo } from 'react';\nimport { eventEmitter, events } from '../utils';\nimport { VideoSDK } from '@videosdk.live/js-sdk';\nimport { version as reactSDKVersion } from '../../package.json';\n\n/**\n *\n * @param {{\n * children:any,\n * config:{\n * meetingId: string,\n * autoConsume?: boolean,\n * preferredProtocol?:\"UDP_ONLY\" | \"UDP_OVER_TCP\",\n * participantId?:string | undefined,\n * name:string,\n * micEnabled:boolean,\n * webcamEnabled:boolean,\n * maxResolution?:\"hd\" | \"sd\",\n * customCameraVideoTrack?: MediaStream | undefined\n * customMicrophoneAudioTrack?: MediaStream | undefined,\n * multiStream?: boolean,\n * mode?: \"CONFERENCE\" | \"VIEWER\",\n * },\n * token: string,\n * joinWithoutUserInteraction?: boolean,\n * reinitialiseMeetingOnConfigChange?: boolean,\n * deviceInfo?: object\n * }}\n *\n */\nconst MeetingProvider = ({\n children,\n config,\n token,\n joinWithoutUserInteraction,\n reinitialiseMeetingOnConfigChange: _reinitialiseMeetingOnConfigChange,\n deviceInfo\n}) => {\n const [meeting, setMeeting] = useState(null);\n const [localParticipant, setLocalParticipant] = useState(null);\n const [mainParticipant, setMainParticipant] = useState(null);\n const [activeSpeakerId, setActiveSpeakerId] = useState(null);\n const [presenterId, setPresenterId] = useState(null);\n const [localMicOn, setLocalMicOn] = useState(false);\n const [localWebcamOn, setLocalWebcamOn] = useState(false);\n const [localScreenShareOn, setLocalScreenShareOn] = useState(false);\n const [isRecording, setIsRecording] = useState(false);\n const [messages, setMessages] = useState([]);\n const [participants, setParticipants] = useState(new Map());\n const [pinnedParticipants, setPinnedParticipants] = useState(new Map());\n const [isLiveStreaming, setIsLiveStreaming] = useState(false);\n const [connections, setConnections] = useState(new Map());\n const [isMeetingJoined, setIsMeetingJoined] = useState(false);\n const [isHls, setIsHls] = useState(false);\n const [recordingState, setRecordingState] = useState(null);\n const [livestreamState, setLivestreamState] = useState(null);\n const [hlsState, setHlsState] = useState(null);\n\n const meetingRef = useRef();\n const localMicOnRef = useRef();\n const localWebcamOnRef = useRef();\n const localScreenShareOnRef = useRef();\n const isRecordingRef = useRef();\n const configRef = useRef(config);\n const tokenRef = useRef(token);\n const joinedOnFirstRender = useRef(false);\n const isHlsRef = useRef();\n\n const reinitialiseMeetingOnConfigChange = useMemo(\n () => _reinitialiseMeetingOnConfigChange,\n []\n );\n\n useEffect(() => {\n meetingRef.current = meeting;\n }, [meeting]);\n useEffect(() => {\n localMicOnRef.current = localMicOn;\n }, [localMicOn]);\n useEffect(() => {\n localWebcamOnRef.current = localWebcamOn;\n }, [localWebcamOn]);\n useEffect(() => {\n localScreenShareOnRef.current = localScreenShareOn;\n }, [localScreenShareOn]);\n useEffect(() => {\n isRecordingRef.current = isRecording;\n }, [isRecording]);\n useEffect(() => {\n configRef.current = config;\n }, [config]);\n useEffect(() => {\n tokenRef.current = token;\n }, [token]);\n useEffect(() => {\n isHlsRef.current = isHls;\n }, [isHls]);\n\n const resetStates = () => {\n setMeeting(null);\n setLocalParticipant(null);\n setMainParticipant(null);\n setActiveSpeakerId(null);\n setPresenterId(null);\n setLocalMicOn(false);\n setLocalWebcamOn(false);\n setLocalScreenShareOn(false);\n setIsRecording(false);\n setMessages([]);\n setIsLiveStreaming(false);\n setParticipants(new Map());\n setPinnedParticipants(new Map());\n setConnections(new Map());\n setIsMeetingJoined(false);\n setIsHls(false);\n setRecordingState(null);\n setLivestreamState(null);\n setHlsState(null);\n };\n\n const _handle_participant_joined = participant => {\n setParticipants(participants => {\n participants.set(participant.id, participant);\n const participantsToSet = new Map(participants);\n return participantsToSet;\n });\n eventEmitter.emit(events['participant-joined'], participant);\n };\n const _handle_participant_left = participant => {\n setParticipants(participants => {\n participants.delete(participant.id);\n\n const newParticipants = new Map(participants);\n return newParticipants;\n });\n eventEmitter.emit(events['participant-left'], participant);\n };\n const _handle_presenter_changed = presenterId => {\n setPresenterId(presenterId);\n setLocalScreenShareOn(\n presenterId === meetingRef?.current?.localParticipant?.id\n );\n eventEmitter.emit(events['presenter-changed'], presenterId);\n };\n const _handle_main_participant_changed = participant => {\n setMainParticipant(participant);\n eventEmitter.emit(events['main-participant-changed'], participant);\n };\n const _handle_speaker_changed = activeSpeakerId => {\n setActiveSpeakerId(activeSpeakerId);\n eventEmitter.emit(events['speaker-changed'], activeSpeakerId);\n };\n const _handle_chat_message = data => {\n setMessages(s => [...s, data]);\n\n eventEmitter.emit(events['chat-message'], data);\n };\n const _handle_entry_requested = data => {\n eventEmitter.emit(events['entry-requested'], data);\n };\n const _handle_entry_responded = (participantId, decision) => {\n eventEmitter.emit(events['entry-responded'], participantId, decision);\n };\n const _handle_recording_started = () => {\n setIsRecording(true);\n eventEmitter.emit(events['recording-started']);\n };\n const _handle_recording_stopped = () => {\n setIsRecording(false);\n eventEmitter.emit(events['recording-stopped']);\n };\n\n const _handle_localParticipant_stream_enabled = stream => {\n if (stream.track.readyState === 'live') {\n if (stream.kind === 'video') {\n setLocalWebcamOn(true);\n } else if (stream.kind === 'audio') {\n setLocalMicOn(true);\n }\n }\n };\n const _handle_localParticipant_stream_disabled = stream => {\n if (stream.track.readyState === 'ended') {\n if (stream.kind === 'video') {\n setLocalWebcamOn(false);\n } else if (stream.kind === 'audio') {\n setLocalMicOn(false);\n }\n }\n };\n\n const _handle_live_stream_started = data => {\n setIsLiveStreaming(true);\n eventEmitter.emit(events['live-stream-started'], data);\n };\n const _handle_live_stream_stopped = () => {\n setIsLiveStreaming(false);\n eventEmitter.emit(events['live-stream-stopped']);\n };\n const _handle_hls_started = data => {\n setIsHls(true);\n eventEmitter.emit(events['hls-started'], data);\n };\n const _handle_hls_stopped = () => {\n setIsHls(false);\n eventEmitter.emit(events['hls-stopped']);\n };\n const _handle_video_state_changed = data => {\n eventEmitter.emit(events['video-state-changed'], data);\n };\n const _handle_video_seeked = data => {\n eventEmitter.emit(events['video-seeked'], data);\n };\n\n const _handle_webcam_requested = data => {\n eventEmitter.emit(events['webcam-requested'], data);\n };\n\n const _handle_mic_requested = data => {\n eventEmitter.emit(events['mic-requested'], data);\n };\n\n const _handle_meeting_joined = data => {\n joinedOnFirstRender.current = true;\n setMessages(s => [...s, ...data.messages]);\n eventEmitter.emit(events['meeting-joined'], data);\n setIsMeetingJoined(true);\n };\n\n const _handle_meeting_left = () => {\n eventEmitter.emit(events['meeting-left']);\n\n const meeting = meetingRef.current;\n\n if (meeting) {\n if (typeof meeting?.off === 'function') {\n meeting.off('meeting-state-changed', _handle_meeting_state_changed);\n meeting.off('participant-joined', _handle_participant_joined);\n meeting.off('participant-left', _handle_participant_left);\n meeting.off('presenter-changed', _handle_presenter_changed);\n meeting.off(\n 'main-participant-changed',\n _handle_main_participant_changed\n );\n meeting.off('speaker-changed', _handle_speaker_changed);\n meeting.off('entry-requested', _handle_entry_requested);\n meeting.off('entry-responded', _handle_entry_responded);\n meeting.off('chat-message', _handle_chat_message);\n meeting.off('recording-started', _handle_recording_started);\n meeting.off('recording-stopped', _handle_recording_stopped);\n meeting.off('meeting-joined', _handle_meeting_joined);\n meeting.off('meeting-left', _handle_meeting_left);\n meeting.off('livestream-started', _handle_live_stream_started);\n meeting.off('livestream-stopped', _handle_live_stream_stopped);\n meeting.off('video-state-changed', _handle_video_state_changed);\n meeting.off('video-seeked', _handle_video_seeked);\n meeting.off('webcam-requested', _handle_webcam_requested);\n meeting.off('mic-requested', _handle_mic_requested);\n meeting.off('pin-state-changed', _handle_pin_state_changed);\n meeting.off('connection-open', _handle_connection_open);\n meeting.off('connection-close', _handle_connection_close);\n meeting.off('switch-meeting', _handle_switch_meeting);\n meeting.off('error', _handle_error);\n meeting.off('hls-started', _handle_hls_started);\n meeting.off('hls-stopped', _handle_hls_stopped);\n meeting.off('recording-state-changed', _handle_recording_state_changed);\n meeting.off(\n 'livestream-state-changed',\n _handle_livestream_state_changed\n );\n meeting.off('hls-state-changed', _handle_hls_state_changed);\n meeting.off(\n 'participant-mode-changed',\n _handel_participant_mode_changed\n );\n }\n\n if (typeof meeting?.localParticipant?.off === 'function') {\n meeting.localParticipant.off(\n 'stream-enabled',\n _handle_localParticipant_stream_enabled\n );\n\n meeting.localParticipant.off(\n 'stream-disabled',\n _handle_localParticipant_stream_disabled\n );\n }\n\n resetStates();\n }\n };\n\n const _handle_pin_state_changed = ({ participantId, state, pinnedBy }) => {\n setPinnedParticipants(pinnedParticipants => {\n if (!state.cam && !state.share) {\n pinnedParticipants.delete(participantId);\n } else {\n pinnedParticipants.set(participantId, state);\n }\n\n const pinnedParticipantsToSet = new Map(pinnedParticipants);\n\n return pinnedParticipantsToSet;\n });\n\n eventEmitter.emit(events['pin-state-changed'], {\n participantId,\n state,\n pinnedBy\n });\n };\n\n const _handle_connection_open = connection => {\n setConnections(s => {\n s.set(connection.id, connection);\n const connectionsToSet = new Map(s);\n return connectionsToSet;\n });\n eventEmitter.emit(events['connection-open'], connection);\n };\n\n const _handle_connection_close = connectionId => {\n setConnections(s => {\n s.delete(connectionId);\n const newConnections = new Map(s);\n return newConnections;\n });\n eventEmitter.emit(events['connection-close'], connectionId);\n };\n\n const _handle_switch_meeting = d => {\n eventEmitter.emit(events['switch-meeting'], d);\n };\n const _handle_error = data => {\n eventEmitter.emit(events['error'], data);\n };\n\n const _handle_recording_state_changed = data => {\n setRecordingState(data?.status);\n eventEmitter.emit(events['recording-state-changed'], data);\n };\n const _handle_livestream_state_changed = data => {\n setLivestreamState(data?.status);\n eventEmitter.emit(events['livestream-state-changed'], data);\n };\n const _handle_hls_state_changed = data => {\n setHlsState(data?.status);\n eventEmitter.emit(events['hls-state-changed'], data);\n };\n\n const _handle_meeting_state_changed = data => {\n eventEmitter.emit(events['meeting-state-changed'], data);\n };\n\n const _handel_participant_mode_changed = data => {\n setParticipants(participants => {\n const part = participants.get(data.participantId);\n part.mode = data.mode;\n participants.set(part.id, part);\n return participants;\n });\n\n // Update Local Participant Object\n if (data.participantId === meetingRef?.current?.localParticipant?.id) {\n setLocalParticipant(participant => {\n participant.mode = data.mode;\n return participant;\n });\n }\n\n eventEmitter.emit(events['participant-mode-changed'], data);\n };\n\n const join = () => {\n const meeting = VideoSDK && VideoSDK.initMeeting(configRef.current);\n setMeeting(meeting);\n const { localParticipant, participants } = meeting;\n participants.set(localParticipant.id, localParticipant);\n setParticipants(participants);\n setLocalParticipant(localParticipant);\n meeting.on('meeting-state-changed', _handle_meeting_state_changed);\n meeting.on('participant-joined', _handle_participant_joined);\n meeting.on('participant-left', _handle_participant_left);\n meeting.on('presenter-changed', _handle_presenter_changed);\n meeting.on('main-participant-changed', _handle_main_participant_changed);\n meeting.on('speaker-changed', _handle_speaker_changed);\n meeting.on('entry-requested', _handle_entry_requested);\n meeting.on('entry-responded', _handle_entry_responded);\n meeting.on('chat-message', _handle_chat_message);\n meeting.on('recording-started', _handle_recording_started);\n meeting.on('recording-stopped', _handle_recording_stopped);\n meeting.on('meeting-joined', _handle_meeting_joined);\n meeting.on('meeting-left', _handle_meeting_left);\n meeting.on('livestream-started', _handle_live_stream_started);\n meeting.on('livestream-stopped', _handle_live_stream_stopped);\n meeting.on('video-state-changed', _handle_video_state_changed);\n meeting.on('video-seeked', _handle_video_seeked);\n meeting.on('webcam-requested', _handle_webcam_requested);\n meeting.on('mic-requested', _handle_mic_requested);\n meeting.on('pin-state-changed', _handle_pin_state_changed);\n\n meeting.on('connection-open', _handle_connection_open);\n meeting.on('connection-close', _handle_connection_close);\n meeting.on('switch-meeting', _handle_switch_meeting);\n meeting.on('error', _handle_error);\n meeting.on('hls-started', _handle_hls_started);\n meeting.on('hls-stopped', _handle_hls_stopped);\n meeting.on('recording-state-changed', _handle_recording_state_changed);\n meeting.on('livestream-state-changed', _handle_livestream_state_changed);\n meeting.on('hls-state-changed', _handle_hls_state_changed);\n meeting.on('participant-mode-changed', _handel_participant_mode_changed);\n\n meeting.localParticipant.on(\n 'stream-enabled',\n _handle_localParticipant_stream_enabled\n );\n meeting.localParticipant.on(\n 'stream-disabled',\n _handle_localParticipant_stream_disabled\n );\n meeting.join();\n };\n\n const leave = () => {\n const meeting = meetingRef.current;\n\n if (meeting) {\n meeting.leave();\n }\n };\n\n const end = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.end();\n }\n };\n const startRecording = (webhookUrl, awsDirPath, config) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startRecording(webhookUrl, awsDirPath, config);\n }\n };\n const stopRecording = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n const isRecording = isRecordingRef.current;\n if (isRecording) {\n meeting.stopRecording();\n }\n }\n };\n const unmuteMic = (customAudioTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.unmuteMic(customAudioTrack);\n }\n };\n const muteMic = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.muteMic();\n }\n };\n const toggleMic = (customAudioTrack = undefined) => {\n const localMicOn = localMicOnRef.current;\n\n if (localMicOn) {\n muteMic();\n } else {\n unmuteMic(customAudioTrack);\n }\n };\n const disableWebcam = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableWebcam();\n }\n };\n const enableWebcam = (customVideoTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableWebcam(customVideoTrack);\n }\n };\n const toggleWebcam = (customVideoTrack = undefined) => {\n const localWebcamOn = localWebcamOnRef.current;\n\n if (localWebcamOn) {\n disableWebcam();\n } else {\n enableWebcam(customVideoTrack);\n }\n };\n const disableScreenShare = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableScreenShare();\n }\n };\n const enableScreenShare = (customScreenShareTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableScreenShare(customScreenShareTrack);\n }\n };\n\n const toggleScreenShare = (customScreenShareTrack = undefined) => {\n const localScreenShareOn = localScreenShareOnRef.current;\n\n if (localScreenShareOn) {\n disableScreenShare();\n } else {\n enableScreenShare(customScreenShareTrack);\n }\n };\n\n const changeMode = mode => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeMode(mode);\n }\n };\n\n const sendChatMessage = text => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.sendChatMessage(text);\n }\n };\n const respondEntry = (participantId, decision) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.respondEntry(participantId, decision);\n }\n };\n const getMics = async () => {\n const meeting = meetingRef.current;\n if (meeting) {\n return await meeting.getMics();\n }\n };\n const getWebcams = async () => {\n const meeting = meetingRef.current;\n if (meeting) {\n return await meeting.getWebcams();\n }\n };\n const changeWebcam = obj => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeWebcam(obj);\n }\n };\n const changeMic = obj => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeMic(obj);\n }\n };\n const startVideo = ({ link }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startVideo({ link });\n }\n };\n\n const stopVideo = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopVideo();\n }\n };\n\n const resumeVideo = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.resumeVideo();\n }\n };\n\n const pauseVideo = ({ currentTime }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.pauseVideo({ currentTime });\n }\n };\n\n const seekVideo = ({ currentTime }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.seekVideo({ currentTime });\n }\n };\n\n const startLivestream = (streamInfo, config) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startLivestream(streamInfo, config);\n }\n };\n\n const stopLivestream = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopLivestream();\n }\n };\n\n const connectTo = async ({ meetingId, payload }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n await meeting.connectTo({ meetingId, payload });\n }\n };\n\n const startHls = config => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startHls(config);\n }\n };\n\n const stopHls = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopHls();\n }\n };\n\n const initSDK = () => {\n VideoSDK.config(tokenRef.current);\n\n if (deviceInfo) {\n VideoSDK.analytics(deviceInfo);\n } else {\n VideoSDK.analytics({\n sdkType: 'react-web',\n sdkVersion: reactSDKVersion\n });\n }\n\n if (joinWithoutUserInteraction) {\n join();\n }\n };\n\n useEffect(() => {\n initSDK();\n }, []);\n\n useEffect(() => {\n if (reinitialiseMeetingOnConfigChange && joinedOnFirstRender.current) {\n leave();\n initSDK();\n !joinWithoutUserInteraction && join();\n }\n }, [config.meetingId, token, reinitialiseMeetingOnConfigChange]);\n\n return (\n <MeetingProviderContex.Provider\n value={{\n meetingId: meeting?.id,\n meeting,\n baseUrl: meeting?.baseUrl,\n localParticipant,\n mainParticipant,\n activeSpeakerId,\n participants,\n presenterId,\n localMicOn,\n localWebcamOn,\n localScreenShareOn,\n messages,\n isRecording,\n isLiveStreaming,\n pinnedParticipants,\n connections,\n isHls,\n recordingState,\n livestreamState,\n hlsState,\n isMeetingJoined,\n //\n join,\n leave,\n end,\n //\n startRecording,\n stopRecording,\n //\n sendChatMessage,\n respondEntry,\n //\n muteMic,\n unmuteMic,\n toggleMic,\n //\n disableWebcam,\n enableWebcam,\n toggleWebcam,\n //\n disableScreenShare,\n enableScreenShare,\n toggleScreenShare,\n //\n getMics,\n getWebcams,\n changeWebcam,\n changeMic,\n changeMode,\n startVideo,\n stopVideo,\n resumeVideo,\n pauseVideo,\n seekVideo,\n startLivestream,\n stopLivestream,\n connectTo,\n\n startHls,\n stopHls\n }}\n >\n {children}\n </MeetingProviderContex.Provider>\n );\n};\n\nexport default MeetingProvider;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\nimport { eventEmitter, events } from '../utils';\n\n/**\n *\n * @param {string} participantId\n * @param {{\n * onStreamDisabled?: Function,\n * onStreamEnabled?: Function,\n * onMediaStatusChanged?: Function,\n * onVideoQualityChanged?: Function,\n * }} options\n *\n * @returns {{\n * displayName: string;\n * participant: Participant;\n * webcamStream: MediaStreamTrack;\n * micStream: MediaStreamTrack;\n * screenShareStream: MediaStreamTrack;\n * webcamOn: boolean;\n * micOn: boolean;\n * screenShareOn: boolean;\n * isLocal: boolean;\n * isActiveSpeaker: boolean;\n * isMainParticipant: boolean;\n * pinState: any;\n * mode: \"CONFERENCE\" | \"VIEWER\",\n * consumeMicStreams: () => void;\n * consumeWebcamStreams: () => void;\n * stopConsumingMicStreams: () => void;\n * stopConsumingWebcamStreams: () => void;\n * setQuality: (quality: \"low\" | \"med\" | 'high') => void;\n * setViewPort: (width: number, height: number) => void;\n * enableMic: () => void;\n * disableMic: () => void;\n * enableWebcam: () => void;\n * disableWebcam: () => void;\n * pin: (data: \"SHARE_AND_CAM\" | \"CAM\" | \"SHARE\") => void;\n * unpin: (data: \"SHARE_AND_CAM\" | \"CAM\" | \"SHARE\") => void;\n * switchTo: ({ meetingId, payload, token }: {\n * meetingId: string;\n * payload: string;\n * token: string;\n * }) => Promise<void>;\n * getAudioStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object\n * }]>;\n * getVideoStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object,\n * currentSpatialLayer: number,\n * currentTemporalLayer: number,\n * preferredSpatialLayer: number,\n * preferredTemporalLayer: number\n * }]>;\n * getShareStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object,\n * currentSpatialLayer: number,\n * currentTemporalLayer: number,\n * preferredSpatialLayer: number,\n * preferredTemporalLayer: number\n * }]>;\n *}}\n *\n */\nconst useParticipant = (\n participantId,\n {\n onStreamEnabled = () => {},\n onStreamDisabled = () => {},\n onMediaStatusChanged = () => {},\n onVideoQualityChanged = () => {}\n } = {}\n) => {\n const [webcamStream, setwebcamStream] = useState(null);\n const [micStream, setMicStream] = useState(null);\n const [screenShareStream, setScreenShareStream] = useState(null);\n const [screenShareAudioStream, setScreenShareAudioStream] = useState(null);\n\n const meeting = useMeeting();\n\n const {\n participants,\n localParticipant,\n activeSpeakerId,\n mainParticipant,\n pinState\n } = useMemo(() => {\n const participants = meeting?.participants;\n const localParticipant = meeting?.localParticipant;\n const activeSpeakerId = meeting?.activeSpeakerId;\n const mainParticipant = meeting?.mainParticipant;\n const pinState = meeting?.pinnedParticipants?.get(participantId) || {\n cam: false,\n share: false\n };\n\n // const micOn = meeting?.participants?.get(participantId).micOn || false;\n // const webcamOn = meeting?.participants?.get(participantId).webcamOn || false;\n\n return {\n participants,\n localParticipant,\n activeSpeakerId,\n mainParticipant,\n pinState\n };\n }, [meeting]);\n\n /**\n * @type {Participant}\n */\n const participant = participants?.get(participantId);\n\n const [webcamOn, setWebcamOn] = useState(participant?.webcamOn);\n const [micOn, setMicOn] = useState(participant?.micOn);\n const [mode, setMode] = useState(participant?.mode);\n\n const setTrack = stream => {\n if (stream.track.readyState === 'live') {\n switch (stream.kind) {\n case 'video':\n if (webcamStream != null) {\n setwebcamStream(null);\n }\n setwebcamStream(stream);\n break;\n case 'audio':\n if (micStream != null) {\n setMicStream(null);\n }\n setMicStream(stream);\n break;\n case 'share':\n if (screenShareStream != null) {\n setScreenShareStream(null);\n }\n setScreenShareStream(stream);\n break;\n case 'shareAudio':\n if (screenShareAudioStream != null) {\n setScreenShareAudioStream(null);\n }\n setScreenShareAudioStream(stream);\n break;\n default:\n break;\n }\n }\n };\n\n const unSetTrack = stream => {\n if (stream.track.readyState !== 'live') {\n switch (stream.kind) {\n case 'video':\n setwebcamStream(null);\n break;\n case 'audio':\n setMicStream(null);\n break;\n case 'share':\n setScreenShareStream(null);\n break;\n case 'shareAudio':\n setScreenShareAudioStream(null);\n break;\n default:\n break;\n }\n }\n };\n\n const _handleStreamEnabled = stream => {\n setTrack(stream);\n onStreamEnabled(stream);\n };\n\n const _handleParticipantModeChanged = data => {\n if (participantId === data.participantId) {\n setMode(data.mode);\n }\n };\n\n const _handleStreamDisabled = stream => {\n unSetTrack(stream);\n onStreamDisabled(stream);\n };\n\n const _handleVideoQualityChanged = data => {\n const { peerId, prevQuality, currentQuality } = data;\n onVideoQualityChanged({ peerId, prevQuality, currentQuality });\n };\n\n const _handleMediaStatusChanged = data => {\n const { kind, peerId, newStatus } = data;\n if (kind == 'audio') {\n setMicOn(newStatus);\n } else if (kind == 'video') {\n setWebcamOn(newStatus);\n }\n onMediaStatusChanged({ kind, peerId, newStatus });\n };\n\n const setQuality = quality => {\n participant?.setQuality(quality);\n };\n\n const setViewPort = (width, height) => {\n participant?.setViewPort(width, height);\n };\n\n const enableMic = () => {\n participant?.enableMic();\n };\n const disableMic = () => {\n participant?.disableMic();\n };\n const enableWebcam = () => {\n participant?.enableWebcam();\n };\n const disableWebcam = () => {\n participant?.disableWebcam();\n };\n const pin = data => {\n participant?.pin(data);\n };\n const unpin = data => {\n participant?.unpin(data);\n };\n const getAudioStats = async () => {\n return participant?.getAudioStats();\n };\n const getVideoStats = async () => {\n return participant?.getVideoStats();\n };\n const getShareStats = async () => {\n return participant?.getShareStats();\n };\n\n const consumeWebcamStreams = () => {\n participant?.consumeWebcamStreams();\n };\n const consumeMicStreams = () => {\n participant?.consumeMicStreams();\n };\n const stopConsumingWebcamStreams = () => {\n participant?.stopConsumingWebcamStreams();\n };\n const stopConsumingMicStreams = () => {\n participant?.stopConsumingMicStreams();\n };\n const switchTo = async data => {\n await participant?.switchTo(data);\n };\n\n useEffect(() => {\n const streams = participant?.streams;\n\n if (streams) {\n streams.forEach(stream => {\n setTrack(stream);\n });\n }\n\n if (participant?.micOn) {\n setMicOn(micOn);\n }\n\n if (participant?.webcamOn) {\n setWebcamOn(webcamOn);\n }\n\n participant?.on('stream-enabled', _handleStreamEnabled);\n\n participant?.on('stream-disabled', _handleStreamDisabled);\n\n participant?.on('media-status-changed', _handleMediaStatusChanged);\n\n participant?.on('video-quality-changed', _handleVideoQualityChanged);\n\n eventEmitter.on(\n events['participant-mode-changed'],\n _handleParticipantModeChanged\n );\n\n return () => {\n participant?.off('stream-enabled', _handleStreamEnabled);\n\n participant?.off('stream-disabled', _handleStreamDisabled);\n\n participant?.off('media-status-changed', _handleMediaStatusChanged);\n\n participant?.off('video-quality-changed', _handleVideoQualityChanged);\n\n eventEmitter.off(\n events['participant-mode-changed'],\n _handleParticipantModeChanged\n );\n };\n }, [participant]);\n\n return {\n displayName: participant?.displayName,\n participant,\n webcamStream,\n micStream,\n screenShareStream,\n screenShareAudioStream,\n webcamOn: webcamOn || !!webcamStream,\n micOn: micOn || !!micStream,\n mode: mode,\n\n screenShareOn: !!screenShareStream,\n isLocal: localParticipant?.id === participantId,\n isActiveSpeaker: activeSpeakerId === participantId,\n isMainParticipant: mainParticipant?.id === participantId,\n pinState,\n\n //\n consumeMicStreams,\n consumeWebcamStreams,\n stopConsumingMicStreams,\n stopConsumingWebcamStreams,\n setQuality,\n setViewPort,\n enableMic,\n disableMic,\n enableWebcam,\n disableWebcam,\n pin,\n unpin,\n switchTo,\n getAudioStats,\n getVideoStats,\n getShareStats\n };\n};\n\nexport default useParticipant;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n/**\n *\n * @param {string} connectionId\n * @param {{onMeeting:{\n * onParticipantJoined?: Function,\n * onParticipantLeft?: Function,\n * onChatMessage?: Function\n * }}}\n * @returns {{\n * connection: {\n * id: string;\n * close: Function;\n * payload: string;\n * meeting: {\n * id: string;\n * sendChatMessage: Function;\n * end: Function;\n * participants: Array<ConnectionParticipant>;\n * };\n * }}}\n */\nconst useConnection = (\n connectionId,\n { onMeeting } = {\n onMeeting: {\n onParticipantJoined: () => {},\n onParticipantLeft: () => {},\n onChatMessage: () => {}\n }\n }\n) => {\n const onParticipantJoined = onMeeting?.onParticipantJoined;\n const onParticipantLeft = onMeeting?.onParticipantLeft;\n const onChatMessage = onMeeting?.onChatMessage;\n\n const meeting = useMeeting();\n\n const { connection, connectionParticipants } = useMemo(() => {\n const connection = meeting?.connections.get(connectionId);\n\n if (!connection) {\n throw new Error('connectionId not found');\n }\n\n const connectionParticipants = new Map(connection.meeting.participants);\n\n return {\n connection,\n connectionParticipants\n };\n }, [meeting]);\n\n const [_connectionParticipants, setConnectionParticipants] = useState(\n new Map(connectionParticipants)\n );\n\n const _handleParticipantJoined = participant => {\n setConnectionParticipants(s => {\n s.set(participant.id, participant);\n const participantsToSet = new Map(s);\n return participantsToSet;\n });\n onParticipantJoined(participant);\n };\n const _handleParticipantLeft = participantId => {\n setConnectionParticipants(s => {\n s.delete(participantId);\n const newParticipants = new Map(s);\n return newParticipants;\n });\n onParticipantLeft(participantId);\n };\n\n const _handleChatMessage = data => {\n onChatMessage(data);\n };\n\n useEffect(() => {\n connection?.meeting.on('participant-joined', _handleParticipantJoined);\n connection?.meeting.on('participant-left', _handleParticipantLeft);\n connection?.meeting.on('chat-message', _handleChatMessage);\n\n return () => {\n connection?.meeting.off('participant-joined', _handleParticipantJoined);\n connection?.meeting.off('participant-left', _handleParticipantLeft);\n connection?.meeting.off('chat-message', _handleChatMessage);\n };\n }, [connection]);\n\n return {\n connection: {\n id: connection.id,\n close: connection.close,\n payload: connection.payload,\n meeting: {\n id: connection.meeting.id,\n sendChatMessage: connection.meeting.sendChatMessage,\n end: connection.meeting.end,\n participants: _connectionParticipants\n }\n }\n };\n};\n\nexport default useConnection;\n","import { useEffect, useRef, useState } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n\n/**\n *\n * @param {string} topic\n * @param {{\n * onMessageReceived?: Function,\n * onOldMessagesReceived?: Function,\n * }} options\n * @returns {{\n * publish: (message: string,{persist: boolean}) => void\n * messages: Array<{\n * id: string,\n * message: string,\n * senderId: string,\n * senderName: string,\n * timestamp: string,\n * topic: string\n * }>\n * }}\n */\nconst usePubSub = (\n topic,\n { onMessageReceived = () => {}, onOldMessagesReceived = () => {} } = {}\n) => {\n const { meeting, isMeetingJoined } = useMeeting();\n const [messages, setMessages] = useState([]);\n const isSubscribed = useRef(false);\n\n /**\n *\n * @param {string} message\n * @param {{persist: boolean}} options\n */\n const publish = (message, options) => {\n if (meeting) {\n meeting.pubSub.publish(topic, message, options);\n }\n };\n\n const _handlePubSub = data => {\n setMessages(s => [...s, data]);\n onMessageReceived(data);\n };\n\n const subscribeToPubsub = async meeting => {\n const data = await meeting?.pubSub?.subscribe(topic, _handlePubSub);\n if (data) {\n onOldMessagesReceived(data.messages);\n setMessages(data.messages);\n }\n };\n\n useEffect(() => {\n if (meeting && !isSubscribed.current && isMeetingJoined) {\n isSubscribed.current = true;\n subscribeToPubsub(meeting);\n\n return () => {\n meeting?.pubSub?.unsubscribe(topic, _handlePubSub);\n };\n }\n }, [meeting, isMeetingJoined]);\n\n return { publish, messages };\n};\n\nexport default usePubSub;\n","import MeetingProvider from './meeting/MeetingProvider';\nimport {\n MeetingConsumer,\n useMeeting\n} from './meeting/meetingProviderContextDef';\nimport useParticipant from './participant/useParticipant';\nimport useConnection from './connection/useConnection';\nimport usePubSub from './pubSub/usePubSub';\nimport { VideoSDK } from '@videosdk.live/js-sdk';\n\nconst Constants = VideoSDK.Constants;\n\n/**\n * @param {{\n * cameraId?: string | undefined,\n * encoderConfig?: \"h90p_w160p\" | \"h180p_w320p\" | \"h216p_w384p\"\n * | \"h360p_w640p\" | \"h540p_w960p\" | \"h720p_w1280p\" | \"h1080p_w1920p\"\n * | \"h1440p_w2560p\" | \"h2160p_w3840p\" | \"h120p_w160p\" | \"h180p_w240p\"\n * | \"h240p_w320p\" | \"h360p_w480p\" | \"h480p_w640p\" | \"h540p_w720p\"\n * | \"h720p_w960p\" | \"h1080p_w1440p\" | \"h1440p_w1920p\" | undefined,\n * facingMode?: \"front\" | \"environment\" | undefined,\n * optimizationMode?: \"text\"| \"motion\" | \"detail\" | undefined\n * multiStream?: boolean\n * }}\n */\nconst createCameraVideoTrack = async ({\n cameraId = undefined,\n encoderConfig = undefined,\n facingMode = undefined,\n optimizationMode = undefined,\n multiStream = true\n}) => {\n return await VideoSDK.createCameraVideoTrack({\n cameraId,\n encoderConfig,\n facingMode,\n optimizationMode,\n multiStream\n });\n};\n\n/**\n * @param {{\n * encoderConfig?: \"h360p_30fps\" | \"h720p_5fps\" | \"h720p_15fps\"\n * | \"h1080p_15fps\" | \"h1080p_30fps\" | undefined,\n * optimizationMode?: \"text\"| \"motion\" | \"detail\" | undefined,\n * withAudio?:\"enable\" | \"disable\"\n * }}\n */\nconst createScreenShareVideoTrack = async ({\n encoderConfig = undefined,\n optimizationMode = undefined,\n withAudio = 'enable'\n}) => {\n return await VideoSDK.createScreenShareVideoTrack({\n encoderConfig,\n optimizationMode,\n withAudio\n });\n};\n\n/**\n * @param {{\n * noiseConfig?: {\n * echoCancellation: boolean,\n * autoGainControl: boolean,\n * noiseSuppression: boolean\n * } | undefined,\n * encoderConfig?: \"speech_low_quality\"\n * | \"speech_standard\" | \"music_standard\"\n * | \"standard_stereo\" | \"high_quality\"\n * | \"high_quality_stereo\" | undefined\n * microphoneId?: string | undefined\n * }}\n */\nconst createMicrophoneAudioTrack = async ({\n noiseConfig = undefined,\n encoderConfig = undefined,\n microphoneId = undefined\n}) => {\n return await VideoSDK.createMicrophoneAudioTrack({\n noiseConfig,\n encoderConfig,\n microphoneId\n });\n};\n\nexport {\n MeetingProvider,\n useMeeting,\n useParticipant,\n usePubSub,\n MeetingConsumer,\n useConnection,\n Constants,\n createCameraVideoTrack,\n createMicrophoneAudioTrack,\n createScreenShareVideoTrack\n};\n"],"names":["eventPrifix","events","error","eventEmitter","EventEmitter","setMaxListeners","MeetingProviderContex","createContext","useMeeting","onParticipantJoined","onParticipantLeft","onSpeakerChanged","onPresenterChanged","onMainParticipantChanged","onEntryRequested","onEntryResponded","onRecordingStarted","onRecordingStopped","onChatMessage","onMeetingJoined","onMeetingLeft","onLiveStreamStarted","onLiveStreamStopped","onVideoStateChanged","onVideoSeeked","onWebcamRequested","onMicRequested","onPinStateChanged","onConnectionOpen","onConnetionClose","onSwitchMeeting","onError","onHlsStarted","onHlsStopped","onHlsStateChanged","onRecordingStateChanged","onLivestreamStateChanged","onMeetingStateChanged","onParticipantModeChanged","useEffect","on","off","useContext","MeetingConsumer","children","MeetingProvider","config","token","joinWithoutUserInteraction","_reinitialiseMeetingOnConfigChange","reinitialiseMeetingOnConfigChange","deviceInfo","useState","meeting","setMeeting","localParticipant","setLocalParticipant","mainParticipant","setMainParticipant","activeSpeakerId","setActiveSpeakerId","presenterId","setPresenterId","localMicOn","setLocalMicOn","localWebcamOn","setLocalWebcamOn","localScreenShareOn","setLocalScreenShareOn","isRecording","setIsRecording","messages","setMessages","Map","participants","setParticipants","pinnedParticipants","setPinnedParticipants","isLiveStreaming","setIsLiveStreaming","connections","setConnections","isMeetingJoined","setIsMeetingJoined","isHls","setIsHls","recordingState","setRecordingState","livestreamState","setLivestreamState","hlsState","setHlsState","meetingRef","useRef","localMicOnRef","localWebcamOnRef","localScreenShareOnRef","isRecordingRef","configRef","tokenRef","joinedOnFirstRender","isHlsRef","useMemo","current","resetStates","_handle_participant_joined","participant","set","id","participantsToSet","emit","_handle_participant_left","newParticipants","_handle_presenter_changed","_handle_main_participant_changed","_handle_speaker_changed","_handle_chat_message","data","s","_handle_entry_requested","_handle_entry_responded","participantId","decision","_handle_recording_started","_handle_recording_stopped","_handle_localParticipant_stream_enabled","stream","track","readyState","kind","_handle_localParticipant_stream_disabled","_handle_live_stream_started","_handle_live_stream_stopped","_handle_hls_started","_handle_hls_stopped","_handle_video_state_changed","_handle_video_seeked","_handle_webcam_requested","_handle_mic_requested","_handle_meeting_joined","_handle_meeting_left","_handle_meeting_state_changed","_handle_pin_state_changed","_handle_connection_open","_handle_connection_close","_handle_switch_meeting","_handle_error","_handle_recording_state_changed","_handle_livestream_state_changed","_handle_hls_state_changed","_handel_participant_mode_changed","state","pinnedBy","cam","share","pinnedParticipantsToSet","connection","connectionsToSet","connectionId","newConnections","d","status","part","get","mode","join","VideoSDK","initMeeting","leave","end","startRecording","webhookUrl","awsDirPath","stopRecording","unmuteMic","customAudioTrack","undefined","muteMic","toggleMic","disableWebcam","enableWebcam","customVideoTrack","toggleWebcam","disableScreenShare","enableScreenShare","customScreenShareTrack","toggleScreenShare","changeMode","sendChatMessage","text","respondEntry","getMics","getWebcams","changeWebcam","obj","changeMic","startVideo","link","stopVideo","resumeVideo","pauseVideo","currentTime","seekVideo","startLivestream","streamInfo","stopLivestream","connectTo","meetingId","payload","startHls","stopHls","initSDK","analytics","sdkType","sdkVersion","reactSDKVersion","baseUrl","useParticipant","onStreamEnabled","onStreamDisabled","onMediaStatusChanged","onVideoQualityChanged","webcamStream","setwebcamStream","micStream","setMicStream","screenShareStream","setScreenShareStream","screenShareAudioStream","setScreenShareAudioStream","pinState","webcamOn","setWebcamOn","micOn","setMicOn","setMode","setTrack","unSetTrack","_handleStreamEnabled","_handleParticipantModeChanged","_handleStreamDisabled","_handleVideoQualityChanged","peerId","prevQuality","currentQuality","_handleMediaStatusChanged","newStatus","setQuality","quality","setViewPort","width","height","enableMic","disableMic","pin","unpin","getAudioStats","getVideoStats","getShareStats","consumeWebcamStreams","consumeMicStreams","stopConsumingWebcamStreams","stopConsumingMicStreams","switchTo","streams","forEach","displayName","screenShareOn","isLocal","isActiveSpeaker","isMainParticipant","useConnection","onMeeting","Error","connectionParticipants","_connectionParticipants","setConnectionParticipants","_handleParticipantJoined","_handleParticipantLeft","_handleChatMessage","close","usePubSub","topic","onMessageReceived","onOldMessagesReceived","isSubscribed","publish","message","options","pubSub","_handlePubSub","subscribeToPubsub","subscribe","unsubscribe","Constants","createCameraVideoTrack","cameraId","encoderConfig","facingMode","optimizationMode","multiStream","createScreenShareVideoTrack","withAudio","createMicrophoneAudioTrack","noiseConfig","microphoneId"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useParticipant.d.ts","sourceRoot":"","sources":["../../../src/participant/useParticipant.js"],"names":[],"mappings":";AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AACH,+CA5FW,MAAM,uFACN;IACV,gBAAmB,CAAC,WAAW;IAC/B,eAAkB,CAAC,WAAW;IAC9B,oBAAuB,CAAC,WAAW;IACnC,qBAAwB,CAAC,WAAW;CACjC;iBAGc,MAAM;;kBAEL,gBAAgB;eACnB,gBAAgB;uBACR,gBAAgB;cACzB,OAAO;WACV,OAAO;mBACC,OAAO;aACb,OAAO;qBACC,OAAO;uBACL,OAAO;cAChB,GAAG;UACP,YAAY,GAAG,QAAQ;uBACV,MAAM,IAAI;0BACP,MAAM,IAAI;6BACP,MAAM,IAAI;gCACP,MAAM,IAAI;0BAChB,KAAK,GAAG,KAAK,GAAG,MAAM,KAAK,IAAI;yBAChC,MAAM,UAAU,MAAM,KAAK,IAAI;eACzC,MAAM,IAAI;gBACT,MAAM,IAAI;kBACR,MAAM,IAAI;mBACT,MAAM,IAAI;gBACb,eAAe,GAAG,KAAK,GAAG,OAAO,KAAK,IAAI;kBACxC,eAAe,GAAG,KAAK,GAAG,OAAO,KAAK,IAAI;;mBAE1C,MAAM;iBACR,MAAM;eACR,MAAM;UACV,QAAQ,IAAI,CAAC;mBACJ,MAAM,QAAQ;QAAC;YAClC,OAAW,EAAE,MAAM,CAAC;YACpB,GAAO,EAAE,MAAM,CAAC;YAChB,OAAW,SAAQ;YACnB,KAAS,SAAS;YAClB,MAAU,EAAE,MAAM,CAAC;YACnB,UAAc,MAAS;YACvB,YAAgB,EAAE,MAAM,CAAC;YACzB,WAAe,EAAE,MAAM,CAAC;YACxB,iBAAqB,EAAE,MAAM,CAAC;YAC9B,8BAAkC,EAAE,MAAM,CAAC;YAC3C,6BAAiC,EAAE,MAAM,CAAC;YAC1C,IAAQ,MAAO;SACZ;KAAC,CAAC;mBACY,MAAM,QAAQ;QAAC;YAChC,OAAW,EAAE,MAAM,CAAC;YACpB,GAAO,EAAE,MAAM,CAAC;YAChB,OAAW,SAAQ;YACnB,KAAS,SAAS;YAClB,MAAU,EAAE,MAAM,CAAC;YACnB,UAAc,MAAS;YACvB,YAAgB,EAAE,MAAM,CAAC;YACzB,WAAe,EAAE,MAAM,CAAC;YACxB,iBAAqB,EAAE,MAAM,CAAC;YAC9B,8BAAkC,EAAE,MAAM,CAAC;YAC3C,6BAAiC,EAAE,MAAM,CAAC;YAC1C,IAAQ,MAAQ;YAChB,mBAAuB,EAAE,MAAM,CAAC;YAChC,oBAAwB,EAAE,MAAM,CAAC;YACjC,qBAAyB,EAAE,MAAM,CAAC;YAClC,sBAA0B,EAAE,MAAM,CAAA;SAC/B;KAAC,CAAC;mBACY,MAAM,QAAQ;QAAC;YAChC,OAAW,EAAE,MAAM,CAAC;YACpB,GAAO,EAAE,MAAM,CAAC;YAChB,OAAW,SAAQ;YACnB,KAAS,SAAS;YAClB,MAAU,EAAE,MAAM,CAAC;YACnB,UAAc,MAAS;YACvB,YAAgB,EAAE,MAAM,CAAC;YACzB,WAAe,EAAE,MAAM,CAAC;YACxB,iBAAqB,EAAE,MAAM,CAAC;YAC9B,8BAAkC,EAAE,MAAM,CAAC;YAC3C,6BAAiC,EAAE,MAAM,CAAC;YAC1C,IAAQ,MAAQ;YAChB,mBAAuB,EAAE,MAAM,CAAC;YAChC,oBAAwB,EAAE,MAAM,CAAC;YACjC,qBAAyB,EAAE,MAAM,CAAC;YAClC,sBAA0B,EAAE,MAAM,CAAA;SAC/B;KAAC,CAAC;EAoRL"}
1
+ {"version":3,"file":"useParticipant.d.ts","sourceRoot":"","sources":["../../../src/participant/useParticipant.js"],"names":[],"mappings":";AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6FG;AACH,+CA5FW,MAAM,uFACN;IACV,gBAAmB,CAAC,WAAW;IAC/B,eAAkB,CAAC,WAAW;IAC9B,oBAAuB,CAAC,WAAW;IACnC,qBAAwB,CAAC,WAAW;CACjC;iBAGc,MAAM;;kBAEL,gBAAgB;eACnB,gBAAgB;uBACR,gBAAgB;cACzB,OAAO;WACV,OAAO;mBACC,OAAO;aACb,OAAO;qBACC,OAAO;uBACL,OAAO;cAChB,GAAG;UACP,YAAY,GAAG,QAAQ;uBACV,MAAM,IAAI;0BACP,MAAM,IAAI;6BACP,MAAM,IAAI;gCACP,MAAM,IAAI;0BAChB,KAAK,GAAG,KAAK,GAAG,MAAM,KAAK,IAAI;yBAChC,MAAM,UAAU,MAAM,KAAK,IAAI;eACzC,MAAM,IAAI;gBACT,MAAM,IAAI;kBACR,MAAM,IAAI;mBACT,MAAM,IAAI;gBACb,eAAe,GAAG,KAAK,GAAG,OAAO,KAAK,IAAI;kBACxC,eAAe,GAAG,KAAK,GAAG,OAAO,KAAK,IAAI;;mBAE1C,MAAM;iBACR,MAAM;eACR,MAAM;UACV,QAAQ,IAAI,CAAC;mBACJ,MAAM,QAAQ;QAAC;YAClC,OAAW,EAAE,MAAM,CAAC;YACpB,GAAO,EAAE,MAAM,CAAC;YAChB,OAAW,SAAQ;YACnB,KAAS,SAAS;YAClB,MAAU,EAAE,MAAM,CAAC;YACnB,UAAc,MAAS;YACvB,YAAgB,EAAE,MAAM,CAAC;YACzB,WAAe,EAAE,MAAM,CAAC;YACxB,iBAAqB,EAAE,MAAM,CAAC;YAC9B,8BAAkC,EAAE,MAAM,CAAC;YAC3C,6BAAiC,EAAE,MAAM,CAAC;YAC1C,IAAQ,MAAO;SACZ;KAAC,CAAC;mBACY,MAAM,QAAQ;QAAC;YAChC,OAAW,EAAE,MAAM,CAAC;YACpB,GAAO,EAAE,MAAM,CAAC;YAChB,OAAW,SAAQ;YACnB,KAAS,SAAS;YAClB,MAAU,EAAE,MAAM,CAAC;YACnB,UAAc,MAAS;YACvB,YAAgB,EAAE,MAAM,CAAC;YACzB,WAAe,EAAE,MAAM,CAAC;YACxB,iBAAqB,EAAE,MAAM,CAAC;YAC9B,8BAAkC,EAAE,MAAM,CAAC;YAC3C,6BAAiC,EAAE,MAAM,CAAC;YAC1C,IAAQ,MAAQ;YAChB,mBAAuB,EAAE,MAAM,CAAC;YAChC,oBAAwB,EAAE,MAAM,CAAC;YACjC,qBAAyB,EAAE,MAAM,CAAC;YAClC,sBAA0B,EAAE,MAAM,CAAA;SAC/B;KAAC,CAAC;mBACY,MAAM,QAAQ;QAAC;YAChC,OAAW,EAAE,MAAM,CAAC;YACpB,GAAO,EAAE,MAAM,CAAC;YAChB,OAAW,SAAQ;YACnB,KAAS,SAAS;YAClB,MAAU,EAAE,MAAM,CAAC;YACnB,UAAc,MAAS;YACvB,YAAgB,EAAE,MAAM,CAAC;YACzB,WAAe,EAAE,MAAM,CAAC;YACxB,iBAAqB,EAAE,MAAM,CAAC;YAC9B,8BAAkC,EAAE,MAAM,CAAC;YAC3C,6BAAiC,EAAE,MAAM,CAAC;YAC1C,IAAQ,MAAQ;YAChB,mBAAuB,EAAE,MAAM,CAAC;YAChC,oBAAwB,EAAE,MAAM,CAAC;YACjC,qBAAyB,EAAE,MAAM,CAAC;YAClC,sBAA0B,EAAE,MAAM,CAAA;SAC/B;KAAC,CAAC;EAmRL"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@videosdk.live/react-sdk",
3
- "version": "0.1.64",
3
+ "version": "0.1.65",
4
4
  "license": "ISC",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.modern.js",