| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | 
							- import { ReducerRegistry } from '../redux';
 - 
 - import {
 -     CONNECTION_DISCONNECTED,
 -     CONNECTION_ESTABLISHED,
 -     SET_DOMAIN
 - } from './actionTypes';
 - 
 - /**
 -  * Initial Redux state.
 -  *
 -  * @type {{
 -  *      jitsiConnection: (JitsiConnection|null),
 -  *      connectionOptions: Object
 -  *  }}
 -  */
 - const INITIAL_STATE = {
 -     jitsiConnection: null,
 -     connectionOptions: null
 - };
 - 
 - /**
 -  * Listen for actions that contain the connection object, so that
 -  * it can be stored for use by other action creators.
 -  */
 - ReducerRegistry.register('features/base/connection',
 -     (state = INITIAL_STATE, action) => {
 -         switch (action.type) {
 -         case CONNECTION_DISCONNECTED:
 -             if (state.jitsiConnection === action.connection) {
 -                 return {
 -                     ...state,
 -                     jitsiConnection: null
 -                 };
 -             }
 - 
 -             return state;
 - 
 -         case CONNECTION_ESTABLISHED:
 -             return {
 -                 ...state,
 -                 jitsiConnection: action.connection
 -             };
 - 
 -         case SET_DOMAIN:
 -             return {
 -                 ...state,
 -                 connectionOptions: {
 -                     ...(state.connectionOptions || {}),
 -                     ...buildConnectionOptions(action.domain)
 -                 }
 -             };
 - 
 -         default:
 -             return state;
 -         }
 -     });
 - 
 - /**
 -  * Builds connection options based on domain.
 -  *
 -  * @param {string} domain - Domain name.
 -  * @returns {Object}
 -  */
 - function buildConnectionOptions(domain) {
 -     // FIXME The HTTPS scheme for the BOSH URL works with meet.jit.si on both
 -     // mobile & Web. It also works with beta.meet.jit.si on Web. Unfortunately,
 -     // it doesn't work with beta.meet.jit.si on mobile. Temporarily, use the
 -     // HTTP scheme for the BOSH URL with beta.meet.jit.si on mobile.
 -     let boshProtocol;
 - 
 -     if (domain === 'beta.meet.jit.si') {
 -         if (typeof window === 'object') {
 -             const windowLocation = window.location;
 - 
 -             if (windowLocation) {
 -                 // React Native doesn't have a window.location at the time of
 -                 // this writing, let alone a window.location.protocol.
 -                 boshProtocol = windowLocation.protocol;
 -             }
 -         }
 -         if (!boshProtocol) {
 -             boshProtocol = 'http:';
 -         }
 -     }
 - 
 -     // Default to the HTTPS scheme for the BOSH URL.
 -     if (!boshProtocol) {
 -         boshProtocol = 'https:';
 -     }
 - 
 -     return {
 -         bosh: `${boshProtocol}//${domain}/http-bind`,
 -         hosts: {
 -             domain,
 -             focus: `focus.${domain}`,
 -             muc: `conference.${domain}`
 -         }
 -     };
 - }
 
 
  |