From 160380dac0466ca32aa6c2dbdb801300c8cfb47d Mon Sep 17 00:00:00 2001 From: paweldomas Date: Wed, 8 May 2019 14:46:18 -0500 Subject: [PATCH] ref(base/session): create tracks and connect on SET_ROOM --- react/features/app/actions.js | 11 +---------- react/features/base/session/middleware.js | 16 ++++++++++++++-- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/react/features/app/actions.js b/react/features/app/actions.js index f7cec988e..820ae419f 100644 --- a/react/features/app/actions.js +++ b/react/features/app/actions.js @@ -11,10 +11,8 @@ import { setConfig, storeConfig } from '../base/config'; -import { connect, setLocationURL } from '../base/connection'; +import { setLocationURL } from '../base/connection'; import { loadConfig } from '../base/lib-jitsi-meet'; -import { findSessionForLocationURL } from '../base/session'; -import { createDesiredLocalTracks } from '../base/tracks'; import { parseURIString, toURLString } from '../base/util'; import { setFatalError } from '../overlay'; @@ -97,13 +95,6 @@ export function appNavigate(uri: ?string) { dispatch(setLocationURL(locationURL)); dispatch(setConfig(config)); dispatch(setRoom(room)); - - const session = findSessionForLocationURL(getState(), locationURL); - - if (session && typeof APP === 'undefined') { - dispatch(createDesiredLocalTracks()); - dispatch(connect()); - } } else { dispatch(loadConfigError(new Error('Config no longer needed!'), locationURL, room)); } diff --git a/react/features/base/session/middleware.js b/react/features/base/session/middleware.js index 2cbd94392..33856ea2f 100644 --- a/react/features/base/session/middleware.js +++ b/react/features/base/session/middleware.js @@ -1,8 +1,9 @@ import { APP_WILL_NAVIGATE } from '../app'; -import { CONFERENCE_FAILED, CONFERENCE_JOINED, CONFERENCE_LEFT, CONFERENCE_WILL_JOIN } from '../conference'; +import { CONFERENCE_FAILED, CONFERENCE_JOINED, CONFERENCE_LEFT, CONFERENCE_WILL_JOIN, SET_ROOM } from '../conference'; import { CONFIG_WILL_LOAD, LOAD_CONFIG_ERROR } from '../config'; -import { CONNECTION_DISCONNECTED, CONNECTION_FAILED, CONNECTION_WILL_CONNECT } from '../connection'; +import { connect, CONNECTION_DISCONNECTED, CONNECTION_FAILED, CONNECTION_WILL_CONNECT } from '../connection'; import { MiddlewareRegistry } from '../redux'; +import { createDesiredLocalTracks } from '../tracks'; import { toURLString } from '../util'; import { createSession, endAllSessions, endSession, sessionFailed, sessionStarted, sessionTerminated } from './actions'; @@ -143,6 +144,17 @@ MiddlewareRegistry.register(({ dispatch, getState }) => next => action => { } break; } + case SET_ROOM: { + const { locationURL } = getState()['features/base/connection']; + const session = findSessionForLocationURL(getState(), locationURL); + + // Web has different logic for creating the local tracks and starting the connection + if (session && typeof APP === 'undefined') { + dispatch(createDesiredLocalTracks()); + dispatch(connect()); + } + break; + } case SESSION_CREATED: case SESSION_STARTED: case SESSION_FAILED: