import * as constants from '../constants' import _ from 'underscore' import Peer from 'simple-peer' import { PeerAction } from '../actions/PeerActions' export type PeersState = Record const defaultState: PeersState = {} export default function peers( state = defaultState, action: PeerAction, ): PeersState { switch (action.type) { case constants.PEER_ADD: return { ...state, [action.payload.userId]: action.payload.peer, } case constants.PEER_REMOVE: return _.omit(state, [action.payload.userId]) case constants.PEERS_DESTROY: _.each(state, peer => peer.destroy()) return defaultState default: return state } }