| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | 
							- import { ReducerRegistry } from '../base/redux';
 - 
 - import {
 -     RESET_DESKTOP_SOURCES,
 -     UPDATE_DESKTOP_SOURCES
 - } from './actionTypes';
 - 
 - const DEFAULT_STATE = {
 -     screen: [],
 -     window: []
 - };
 - 
 - /**
 -  * Listen for actions that mutate the known available DesktopCapturerSources.
 -  *
 -  * @param {Object[]} state - Current state.
 -  * @param {Object} action - Action object.
 -  * @param {string} action.type - Type of action.
 -  * @param {Array} action.sources - DesktopCapturerSources.
 -  * @returns {Object}
 -  */
 - ReducerRegistry.register(
 -     'features/desktop-picker',
 -     (state = DEFAULT_STATE, action) => {
 -         switch (action.type) {
 -         case RESET_DESKTOP_SOURCES:
 -             return { ...DEFAULT_STATE };
 - 
 -         case UPDATE_DESKTOP_SOURCES:
 -             return _seperateSourcesByType(action.sources);
 - 
 -         default:
 -             return state;
 -         }
 -     });
 - 
 - /**
 -  * Converts an array of DesktopCapturerSources to an object with types for keys
 -  * and values being an array with sources of the key's type.
 -  *
 -  * @param {Array} sources - DesktopCapturerSources.
 -  * @private
 -  * @returns {Object} An object with the sources split into seperate arrays based
 -  * on source type.
 -  */
 - function _seperateSourcesByType(sources = []) {
 -     const sourcesByType = {
 -         screen: [],
 -         window: []
 -     };
 - 
 -     sources.forEach(source => {
 -         const idParts = source.id.split(':');
 -         const type = idParts[0];
 - 
 -         if (sourcesByType[type]) {
 -             sourcesByType[type].push(source);
 -         }
 -     });
 - 
 -     return sourcesByType;
 - }
 
 
  |