diff --git a/react/features/base/lib-jitsi-meet/actions.js b/react/features/base/lib-jitsi-meet/actions.js index 7fb49edc7..fbd1f6879 100644 --- a/react/features/base/lib-jitsi-meet/actions.js +++ b/react/features/base/lib-jitsi-meet/actions.js @@ -2,6 +2,8 @@ import type { Dispatch } from 'redux'; +import { isOnline } from '../net-info/selectors'; + import JitsiMeetJS from './_'; import { LIB_DID_DISPOSE, @@ -37,7 +39,8 @@ export function disposeLib() { */ export function initLib() { return (dispatch: Dispatch, getState: Function): void => { - const config = getState()['features/base/config']; + const state = getState(); + const config = state['features/base/config']; if (!config) { throw new Error('Cannot init lib-jitsi-meet without config'); @@ -50,6 +53,9 @@ export function initLib() { enableAnalyticsLogging: isAnalyticsEnabled(getState), ...config }); + JitsiMeetJS.setNetworkInfo({ + isOnline: isOnline(state) + }); dispatch({ type: LIB_DID_INIT }); } catch (error) { dispatch(libInitError(error)); diff --git a/react/features/base/lib-jitsi-meet/middleware.js b/react/features/base/lib-jitsi-meet/middleware.js index 9c17b94bb..5068d0b1e 100644 --- a/react/features/base/lib-jitsi-meet/middleware.js +++ b/react/features/base/lib-jitsi-meet/middleware.js @@ -2,6 +2,7 @@ import { SET_CONFIG } from '../config'; import { setLoggingConfig } from '../logging'; +import { SET_NETWORK_INFO } from '../net-info'; import { PARTICIPANT_LEFT } from '../participants'; import { MiddlewareRegistry } from '../redux'; @@ -31,6 +32,12 @@ MiddlewareRegistry.register(store => next => action => { } break; + case SET_NETWORK_INFO: + JitsiMeetJS.setNetworkInfo({ + isOnline: action.isOnline + }); + break; + case PARTICIPANT_LEFT: action.participant.local && store.dispatch(disposeLib()); break; diff --git a/react/features/base/net-info/selectors.js b/react/features/base/net-info/selectors.js new file mode 100644 index 000000000..776bcc37e --- /dev/null +++ b/react/features/base/net-info/selectors.js @@ -0,0 +1,11 @@ +import { STORE_NAME } from './constants'; + +/** + * A selector for the internet online status. + * + * @param {Object} state - The redux state. + * @returns {boolean} + */ +export function isOnline(state) { + return state[STORE_NAME].isOnline; +}