| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 | 
							- import type { Dispatch } from 'redux';
 - 
 - import JitsiMeetJS from './_';
 - import {
 -     LIB_DID_DISPOSE,
 -     LIB_DID_INIT,
 -     LIB_INIT_ERROR,
 -     LIB_WILL_DISPOSE,
 -     LIB_WILL_INIT,
 -     SET_CONFIG
 - } from './actionTypes';
 - 
 - declare var APP: Object;
 - 
 - /**
 -  * Disposes (of) lib-jitsi-meet.
 -  *
 -  * @returns {Function}
 -  */
 - export function disposeLib() {
 -     return (dispatch: Dispatch<*>) => {
 -         dispatch({ type: LIB_WILL_DISPOSE });
 - 
 -         // XXX We're wrapping it with Promise because:
 -         // a) to be better aligned with initLib() method which is async;
 -         // b) as currently there is no implementation for it in lib-jitsi-meet
 -         //    and there is a big chance it will be async.
 -         // TODO Currently, lib-jitsi-meet doesn't have the functionality to
 -         // dispose itself.
 -         return (
 -             Promise.resolve()
 -                 .then(() => dispatch({ type: LIB_DID_DISPOSE })));
 -     };
 - }
 - 
 - /**
 -  * Initializes lib-jitsi-meet (i.e. {@link invokes JitsiMeetJS.init()}) with the
 -  * current config(uration).
 -  *
 -  * @returns {Function}
 -  */
 - export function initLib() {
 -     return (dispatch: Dispatch<*>, getState: Function) => {
 -         const { config } = getState()['features/base/lib-jitsi-meet'];
 - 
 -         if (!config) {
 -             throw new Error('Cannot init lib-jitsi-meet without config');
 -         }
 - 
 -         // XXX Temporarily until conference.js is moved to the React app we
 -         // shouldn't use JitsiMeetJS from the React app.
 -         if (typeof APP !== 'undefined') {
 -             return Promise.resolve();
 -         }
 - 
 -         dispatch({ type: LIB_WILL_INIT });
 - 
 -         return (
 -             JitsiMeetJS.init(config)
 -                 .then(() => dispatch({ type: LIB_DID_INIT }))
 -                 .catch(error => {
 -                     dispatch(libInitError(error));
 - 
 -                     // TODO Handle LIB_INIT_ERROR error somewhere instead.
 -                     console.error('lib-jitsi-meet failed to init:', error);
 -                     throw error;
 -                 }));
 -     };
 - }
 - 
 - /**
 -  * Notifies about a specific error raised by {@link JitsiMeetJS.init()}.
 -  *
 -  * @param {Error} error - The Error raised by JitsiMeetJS.init().
 -  * @returns {{
 -  *     type: LIB_INIT_ERROR,
 -  *     error: Error
 -  * }}
 -  */
 - export function libInitError(error: Error) {
 -     return {
 -         type: LIB_INIT_ERROR,
 -         error
 -     };
 - }
 - 
 - /**
 -  * Sets config.
 -  *
 -  * @param {Object} config - The config(uration) object in the format accepted by
 -  * the JitsiMeetJS.init() method.
 -  * @returns {{
 -  *     type: SET_CONFIG,
 -  *     config: Object
 -  * }}
 -  */
 - export function setConfig(config: Object) {
 -     return {
 -         type: SET_CONFIG,
 -         config
 -     };
 - }
 
 
  |