@videosdk.live/react-sdk 0.1.9 → 0.1.13
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 +209 -12
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +210 -14
- package/dist/index.modern.js.map +1 -1
- package/package.json +3 -3
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"],"sourcesContent":["import EventEmitter from 'events';\n\nconst eventPrifix = 'zn-meeting-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};\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\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} = {}) => {\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\n return () => {\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 };\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}) => {\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-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 return () => {\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 };\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 } from 'react';\nimport { eventEmitter, events } from '../utils';\nimport { ZujoSDK } from '@videosdk.live/js-sdk';\n\nconst MeetingProvider = ({\n children,\n config,\n token,\n joinWithoutUserInteraction\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\n const [isLiveStreaming, setIsLiveStreaming] = useState(false);\n\n const meetingRef = useRef();\n const localMicOnRef = useRef();\n const localWebcamOnRef = useRef();\n const localScreenShareOnRef = useRef();\n const isRecordingRef = useRef();\n //pinnedParticipantRef\n // const pinnnedParticipantRef = useRef();\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\n //useEffect for pinned participant\n // useEffect(() => {\n // pinnnedParticipantRef.current = pinnedParticipants;\n // }, [pinnedParticipants]);\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 //reset pinnedParticipant\n setPinnedParticipants(new Map());\n };\n\n const _handle_participant_joined = participant => {\n setParticipants(participants => {\n participants.set(participant.id, participant);\n const participantsToSet = new Map(participants);\n\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 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_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 eventEmitter.emit(events['meeting-joined'], data);\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('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 }\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 join = () => {\n const meeting = ZujoSDK && ZujoSDK.initMeeting(config);\n setMeeting(meeting);\n const { localParticipant, participants } = meeting;\n participants.set(localParticipant.id, localParticipant);\n setParticipants(participants);\n setLocalParticipant(localParticipant);\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.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 // const leave = () => {\n // const meeting = meetingRef.current;\n\n // if (meeting) {\n // if (typeof meeting?.off === 'function') {\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 // }\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 // meeting.leave();\n\n // resetStates();\n // }\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 => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startRecording(webhookUrl);\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 = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.unmuteMic();\n }\n };\n const muteMic = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.muteMic();\n }\n };\n const toggleMic = () => {\n const localMicOn = localMicOnRef.current;\n\n if (localMicOn) {\n muteMic();\n } else {\n unmuteMic();\n }\n };\n const disableWebcam = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableWebcam();\n }\n };\n const enableWebcam = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableWebcam();\n }\n };\n const toggleWebcam = () => {\n const localWebcamOn = localWebcamOnRef.current;\n\n if (localWebcamOn) {\n disableWebcam();\n } else {\n enableWebcam();\n }\n };\n const disableScreenShare = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableScreenShare();\n }\n };\n const enableScreenShare = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableScreenShare();\n }\n };\n const toggleScreenShare = () => {\n const localScreenShareOn = localScreenShareOnRef.current;\n\n if (localScreenShareOn) {\n disableScreenShare();\n } else {\n enableScreenShare();\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 = deviceId => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeWebcam(deviceId);\n }\n };\n const changeMic = deviceId => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeMic(deviceId);\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 => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startLivestream(streamInfo);\n }\n };\n\n const stopLivestream = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopLivestream();\n }\n };\n\n const initSDK = () => {\n ZujoSDK.config(token);\n\n if (joinWithoutUserInteraction) {\n join();\n }\n };\n\n useEffect(() => {\n initSDK();\n }, []);\n\n return (\n <MeetingProviderContex.Provider\n value={{\n meetingId: config.meetingId,\n meeting,\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 //\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\n startVideo,\n stopVideo,\n resumeVideo,\n pauseVideo,\n seekVideo,\n startLivestream,\n stopLivestream\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';\n\nconst useParticipant = (\n participantId,\n { onStreamEnabled = () => {}, onStreamDisabled = () => {} } = {}\n) => {\n const [webcamStream, setwebcamStream] = useState(null);\n const [micStream, setMicStream] = useState(null);\n const [screenShareStream, setScreenShareStream] = 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 return {\n participants,\n localParticipant,\n activeSpeakerId,\n mainParticipant,\n pinState\n };\n }, [meeting]);\n\n const participant = participants?.get(participantId);\n\n const setTrack = stream => {\n if (stream.track.readyState === 'live') {\n switch (stream.kind) {\n case 'video':\n setwebcamStream(stream);\n break;\n case 'audio':\n setMicStream(stream);\n break;\n case 'share':\n setScreenShareStream(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 default:\n break;\n }\n }\n };\n\n const _handleStreamEnabled = stream => {\n setTrack(stream);\n onStreamEnabled(stream);\n };\n\n const _handleStreamDisabled = stream => {\n unSetTrack(stream);\n onStreamDisabled(stream);\n };\n\n const setQuality = quality => {\n participant?.setQuality(quality);\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\n useEffect(() => {\n const streams = participant?.streams;\n\n if (streams) {\n streams.forEach(stream => {\n setTrack(stream);\n });\n }\n\n participant?.on('stream-enabled', _handleStreamEnabled);\n\n participant?.on('stream-disabled', _handleStreamDisabled);\n\n return () => {\n participant?.off('stream-enabled', _handleStreamEnabled);\n\n participant?.off('stream-disabled', _handleStreamDisabled);\n };\n }, [participant]);\n\n return {\n displayName: participant?.displayName,\n participant,\n webcamStream,\n micStream,\n screenShareStream,\n webcamOn: !!webcamStream,\n micOn: !!micStream,\n screenShareOn: !!screenShareStream,\n isLocal: localParticipant?.id === participantId,\n isActiveSpeaker: activeSpeakerId === participantId,\n isMainParticipant: mainParticipant?.id === participantId,\n pinState,\n\n //\n setQuality,\n enableMic,\n disableMic,\n enableWebcam,\n disableWebcam,\n pin,\n unpin\n };\n};\n\nexport default useParticipant;\n"],"names":["eventPrifix","events","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","useEffect","on","off","useContext","MeetingConsumer","children","React","MeetingProvider","config","token","joinWithoutUserInteraction","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","meetingRef","useRef","localMicOnRef","localWebcamOnRef","localScreenShareOnRef","isRecordingRef","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_video_state_changed","_handle_video_seeked","_handle_webcam_requested","_handle_mic_requested","_handle_meeting_joined","_handle_meeting_left","_handle_pin_state_changed","state","pinnedBy","cam","share","pinnedParticipantsToSet","join","ZujoSDK","initMeeting","leave","end","startRecording","webhookUrl","stopRecording","unmuteMic","muteMic","toggleMic","disableWebcam","enableWebcam","toggleWebcam","disableScreenShare","enableScreenShare","toggleScreenShare","sendChatMessage","text","respondEntry","getMics","getWebcams","changeWebcam","deviceId","changeMic","startVideo","link","stopVideo","resumeVideo","pauseVideo","currentTime","seekVideo","startLivestream","streamInfo","stopLivestream","initSDK","meetingId","useParticipant","onStreamEnabled","onStreamDisabled","webcamStream","setwebcamStream","micStream","setMicStream","screenShareStream","setScreenShareStream","useMemo","pinState","get","setTrack","unSetTrack","_handleStreamEnabled","_handleStreamDisabled","setQuality","quality","enableMic","disableMic","pin","unpin","streams","forEach","displayName","webcamOn","micOn","screenShareOn","isLocal","isActiveSpeaker","isMainParticipant"],"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"],"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};\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\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} = {}) => {\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\n return () => {\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 };\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}) => {\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-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\n return () => {\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 };\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';\n\nconst MeetingProvider = ({\n children,\n config,\n token,\n joinWithoutUserInteraction,\n reinitialiseMeetingOnConfigChange: _reinitialiseMeetingOnConfigChange\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\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\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\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 };\n\n const _handle_participant_joined = participant => {\n setParticipants(participants => {\n participants.set(participant.id, participant);\n const participantsToSet = new Map(participants);\n\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 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_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\n setMessages(s => [...s, ...data.messages]);\n\n eventEmitter.emit(events['meeting-joined'], data);\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('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 }\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\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('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\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) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startRecording(webhookUrl, awsDirPath);\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 = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.unmuteMic();\n }\n };\n const muteMic = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.muteMic();\n }\n };\n const toggleMic = () => {\n const localMicOn = localMicOnRef.current;\n\n if (localMicOn) {\n muteMic();\n } else {\n unmuteMic();\n }\n };\n const disableWebcam = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableWebcam();\n }\n };\n const enableWebcam = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableWebcam();\n }\n };\n const toggleWebcam = () => {\n const localWebcamOn = localWebcamOnRef.current;\n\n if (localWebcamOn) {\n disableWebcam();\n } else {\n enableWebcam();\n }\n };\n const disableScreenShare = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableScreenShare();\n }\n };\n const enableScreenShare = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableScreenShare();\n }\n };\n const toggleScreenShare = () => {\n const localScreenShareOn = localScreenShareOnRef.current;\n\n if (localScreenShareOn) {\n disableScreenShare();\n } else {\n enableScreenShare();\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 = deviceId => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeWebcam(deviceId);\n }\n };\n const changeMic = deviceId => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeMic(deviceId);\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 => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startLivestream(streamInfo);\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 initSDK = () => {\n VideoSDK.config(tokenRef.current);\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 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 //\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\n startVideo,\n stopVideo,\n resumeVideo,\n pauseVideo,\n seekVideo,\n startLivestream,\n stopLivestream,\n connectTo\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';\n\nconst useParticipant = (\n participantId,\n { onStreamEnabled = () => {}, onStreamDisabled = () => {} } = {}\n) => {\n const [webcamStream, setwebcamStream] = useState(null);\n const [micStream, setMicStream] = useState(null);\n const [screenShareStream, setScreenShareStream] = 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 return {\n participants,\n localParticipant,\n activeSpeakerId,\n mainParticipant,\n pinState\n };\n }, [meeting]);\n\n const participant = participants?.get(participantId);\n\n const setTrack = stream => {\n if (stream.track.readyState === 'live') {\n switch (stream.kind) {\n case 'video':\n setwebcamStream(stream);\n break;\n case 'audio':\n setMicStream(stream);\n break;\n case 'share':\n setScreenShareStream(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 default:\n break;\n }\n }\n };\n\n const _handleStreamEnabled = stream => {\n setTrack(stream);\n onStreamEnabled(stream);\n };\n\n const _handleStreamDisabled = stream => {\n unSetTrack(stream);\n onStreamDisabled(stream);\n };\n\n const setQuality = quality => {\n participant?.setQuality(quality);\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\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 participant?.on('stream-enabled', _handleStreamEnabled);\n\n participant?.on('stream-disabled', _handleStreamDisabled);\n\n return () => {\n participant?.off('stream-enabled', _handleStreamEnabled);\n\n participant?.off('stream-disabled', _handleStreamDisabled);\n };\n }, [participant]);\n\n return {\n displayName: participant?.displayName,\n participant,\n webcamStream,\n micStream,\n screenShareStream,\n webcamOn: !!webcamStream,\n micOn: !!micStream,\n screenShareOn: !!screenShareStream,\n isLocal: localParticipant?.id === participantId,\n isActiveSpeaker: activeSpeakerId === participantId,\n isMainParticipant: mainParticipant?.id === participantId,\n pinState,\n\n //\n setQuality,\n enableMic,\n disableMic,\n enableWebcam,\n disableWebcam,\n pin,\n unpin,\n switchTo\n };\n};\n\nexport default useParticipant;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\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"],"names":["eventPrifix","events","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","useEffect","on","off","useContext","MeetingConsumer","children","React","MeetingProvider","config","token","joinWithoutUserInteraction","_reinitialiseMeetingOnConfigChange","reinitialiseMeetingOnConfigChange","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","meetingRef","useRef","localMicOnRef","localWebcamOnRef","localScreenShareOnRef","isRecordingRef","configRef","tokenRef","joinedOnFirstRender","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_video_state_changed","_handle_video_seeked","_handle_webcam_requested","_handle_mic_requested","_handle_meeting_joined","_handle_meeting_left","_handle_pin_state_changed","_handle_connection_open","_handle_connection_close","_handle_switch_meeting","state","pinnedBy","cam","share","pinnedParticipantsToSet","connection","connectionsToSet","connectionId","newConnections","d","join","VideoSDK","initMeeting","leave","end","startRecording","webhookUrl","awsDirPath","stopRecording","unmuteMic","muteMic","toggleMic","disableWebcam","enableWebcam","toggleWebcam","disableScreenShare","enableScreenShare","toggleScreenShare","sendChatMessage","text","respondEntry","getMics","getWebcams","changeWebcam","deviceId","changeMic","startVideo","link","stopVideo","resumeVideo","pauseVideo","currentTime","seekVideo","startLivestream","streamInfo","stopLivestream","connectTo","meetingId","payload","initSDK","useParticipant","onStreamEnabled","onStreamDisabled","webcamStream","setwebcamStream","micStream","setMicStream","screenShareStream","setScreenShareStream","pinState","get","setTrack","unSetTrack","_handleStreamEnabled","_handleStreamDisabled","setQuality","quality","enableMic","disableMic","pin","unpin","switchTo","streams","forEach","displayName","webcamOn","micOn","screenShareOn","isLocal","isActiveSpeaker","isMainParticipant","useConnection","onMeeting","Error","connectionParticipants","_connectionParticipants","setConnectionParticipants","_handleParticipantJoined","_handleParticipantLeft","_handleChatMessage","close"],"mappings":"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"}
|