UNPKG

vroom-react

Version:
53 lines (43 loc) 1.39 kB
const participantsReducer = (state: any[], action: { type: string, payload: any}) => { switch (action.type) { case 'add': if (action.payload?.email === "bot-recorder@vroom.com") { return state } if (state?.length > 0) { const nIdx = state.findIndex((i: any) => i.id === action.payload.id) if (nIdx > -1) { state[nIdx] = {...state[nIdx], ...action.payload} return state } } return [...state, action.payload] case 'remove': return state.filter(i => i.id !== action.payload.id) case 'set_video_stream': { const nIdx = state.findIndex((i: any) => i.id === action.payload.id) if (action.payload.type === 'video') { if (nIdx > -1) { state[nIdx].videoMediaStream = action.payload.mediaStream } else { state[state.length] = { id: action.payload.id, hasVideo: true, videoMediaStream: action.payload.mediaStream } } } return state } case 'set_audio_stream': { const nIdx = state.findIndex((i: any) => i.id === action.payload.id) if (nIdx > -1 && action.payload.type === 'audio') { state[nIdx].audioMediaStream = action.payload.mediaStream } return state } default: return state } } export default participantsReducer