| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | 
							- import { ReducerRegistry } from '../base/redux';
 - import {
 -     CLEAR_RECORDING_SESSIONS,
 -     RECORDING_SESSION_UPDATED,
 -     SET_PENDING_RECORDING_NOTIFICATION_UID,
 -     SET_STREAM_KEY
 - } from './actionTypes';
 - 
 - const DEFAULT_STATE = {
 -     pendingNotificationUids: {},
 -     sessionDatas: []
 - };
 - 
 - /**
 -  * The name of the Redux store this feature stores its state in.
 -  */
 - const STORE_NAME = 'features/recording';
 - 
 - /**
 -  * Reduces the Redux actions of the feature features/recording.
 -  */
 - ReducerRegistry.register(STORE_NAME,
 -     (state = DEFAULT_STATE, action) => {
 -         switch (action.type) {
 - 
 -         case CLEAR_RECORDING_SESSIONS:
 -             return {
 -                 ...state,
 -                 sessionDatas: []
 -             };
 - 
 -         case RECORDING_SESSION_UPDATED:
 -             return {
 -                 ...state,
 -                 sessionDatas:
 -                     _updateSessionDatas(state.sessionDatas, action.sessionData)
 -             };
 - 
 -         case SET_PENDING_RECORDING_NOTIFICATION_UID: {
 -             const pendingNotificationUids = {
 -                 ...state.pendingNotificationUids
 -             };
 - 
 -             pendingNotificationUids[action.streamType] = action.uid;
 - 
 -             return {
 -                 ...state,
 -                 pendingNotificationUids
 -             };
 -         }
 - 
 -         case SET_STREAM_KEY:
 -             return {
 -                 ...state,
 -                 streamKey: action.streamKey
 -             };
 - 
 -         default:
 -             return state;
 -         }
 -     });
 - 
 - /**
 -  * Updates the known information on recording sessions.
 -  *
 -  * @param {Array} sessionDatas - The current sessions in the redux store.
 -  * @param {Object} newSessionData - The updated session data.
 -  * @private
 -  * @returns {Array} The session datas with the updated session data added.
 -  */
 - function _updateSessionDatas(sessionDatas, newSessionData) {
 -     const hasExistingSessionData = sessionDatas.find(
 -         sessionData => sessionData.id === newSessionData.id);
 -     let newSessionDatas;
 - 
 -     if (hasExistingSessionData) {
 -         newSessionDatas = sessionDatas.map(sessionData => {
 -             if (sessionData.id === newSessionData.id) {
 -                 return {
 -                     ...newSessionData
 -                 };
 -             }
 - 
 -             // Nothing to update for this session data so pass it back in.
 -             return sessionData;
 -         });
 -     } else {
 -         // If the session data is not present, then there is nothing to update
 -         // and instead it needs to be added to the known session datas.
 -         newSessionDatas = [
 -             ...sessionDatas,
 -             { ...newSessionData }
 -         ];
 -     }
 - 
 -     return newSessionDatas;
 - }
 
 
  |