| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 | 
							- import { ReducerRegistry } from '../base/redux';
 - 
 - import {
 -     SET_DEVICE_STATUS,
 -     SET_DIALOUT_NUMBER,
 -     SET_DIALOUT_COUNTRY,
 -     SET_DIALOUT_STATUS,
 -     SET_JOIN_BY_PHONE_DIALOG_VISIBLITY,
 -     SET_SKIP_PREJOIN,
 -     SET_PREJOIN_DEVICE_ERRORS,
 -     SET_PREJOIN_PAGE_VISIBILITY
 - } from './actionTypes';
 - 
 - const DEFAULT_STATE = {
 -     country: '',
 -     deviceStatusText: 'prejoin.configuringDevices',
 -     deviceStatusType: 'ok',
 -     dialOutCountry: {
 -         name: 'United States',
 -         dialCode: '1',
 -         code: 'us'
 -     },
 -     dialOutNumber: '',
 -     dialOutStatus: 'prejoin.dialing',
 -     name: '',
 -     rawError: '',
 -     showPrejoin: true,
 -     showJoinByPhoneDialog: false,
 -     userSelectedSkipPrejoin: false
 - };
 - 
 - /**
 -  * Listen for actions that mutate the prejoin state
 -  */
 - ReducerRegistry.register(
 -     'features/prejoin', (state = DEFAULT_STATE, action) => {
 -         switch (action.type) {
 - 
 -         case SET_SKIP_PREJOIN: {
 -             return {
 -                 ...state,
 -                 userSelectedSkipPrejoin: action.value
 -             };
 -         }
 - 
 -         case SET_PREJOIN_PAGE_VISIBILITY:
 -             return {
 -                 ...state,
 -                 showPrejoin: action.value
 -             };
 - 
 -         case SET_PREJOIN_DEVICE_ERRORS: {
 -             const status = getStatusFromErrors(action.value);
 - 
 -             return {
 -                 ...state,
 -                 ...status
 -             };
 -         }
 - 
 -         case SET_DEVICE_STATUS: {
 -             return {
 -                 ...state,
 -                 deviceStatusText: action.text,
 -                 deviceStatusType: action.type
 -             };
 -         }
 - 
 -         case SET_DIALOUT_NUMBER: {
 -             return {
 -                 ...state,
 -                 dialOutNumber: action.value
 -             };
 -         }
 - 
 -         case SET_DIALOUT_COUNTRY: {
 -             return {
 -                 ...state,
 -                 dialOutCountry: action.value
 -             };
 -         }
 - 
 -         case SET_DIALOUT_STATUS: {
 -             return {
 -                 ...state,
 -                 dialOutStatus: action.value
 -             };
 -         }
 - 
 -         case SET_JOIN_BY_PHONE_DIALOG_VISIBLITY: {
 -             return {
 -                 ...state,
 -                 showJoinByPhoneDialog: action.value
 -             };
 -         }
 - 
 -         default:
 -             return state;
 -         }
 -     },
 - );
 - 
 - /**
 -  * Returns a suitable error object based on the track errors.
 -  *
 -  * @param {Object} errors - The errors got while creating local tracks.
 -  * @returns {Object}
 -  */
 - function getStatusFromErrors(errors) {
 -     const { audioOnlyError, videoOnlyError, audioAndVideoError } = errors;
 - 
 -     if (audioAndVideoError) {
 -         if (audioOnlyError) {
 -             if (videoOnlyError) {
 -                 return {
 -                     deviceStatusType: 'warning',
 -                     deviceStatusText: 'prejoin.audioAndVideoError',
 -                     rawError: audioAndVideoError.message
 -                 };
 -             }
 - 
 -             return {
 -                 deviceStatusType: 'warning',
 -                 deviceStatusText: 'prejoin.audioOnlyError',
 -                 rawError: audioOnlyError.message
 -             };
 -         }
 - 
 -         return {
 -             deviceStatusType: 'warning',
 -             deviceStatusText: 'prejoin.videoOnlyError',
 -             rawError: audioAndVideoError.message
 -         };
 -     }
 - 
 -     return {
 -         deviceStatusType: 'ok',
 -         deviceStatusText: 'prejoin.lookGood',
 -         rawError: ''
 -     };
 - }
 
 
  |