feat(base/session): add SESSION_CONFIGURED event

The SESSION_CONFIGURED event is fired once the config has been set,
after either being loaded or restored from the storage.
This commit is contained in:
paweldomas 2018-07-06 09:53:31 -05:00 committed by Lyubo Marinov
parent 468d4a7150
commit 67a8b4915d
2 changed files with 30 additions and 6 deletions

View File

@ -1,4 +1,6 @@
export const SESSION_CONFIGURED = Symbol('SESSION_CONFIGURED');
export const SESSION_ENDED = Symbol('SESSION_ENDED');
export const SESSION_FAILED = Symbol('SESSION_FAILED');

View File

@ -21,14 +21,15 @@ import {
import { parseURIString, toURLString } from '../../base/util';
import {
SESSION_FAILED,
SESSION_WILL_END,
SESSION_CONFIGURED,
SESSION_ENDED,
SESSION_WILL_START,
SESSION_STARTED
SESSION_FAILED,
SESSION_STARTED,
SESSION_WILL_END,
SESSION_WILL_START
} from './constants';
import { setSession } from './actions';
import { CONFIG_WILL_LOAD, LOAD_CONFIG_ERROR } from '../config';
import { CONFIG_WILL_LOAD, LOAD_CONFIG_ERROR, SET_CONFIG } from '../config';
import { getCurrentSession, getSession } from './functions';
/**
@ -74,12 +75,13 @@ MiddlewareRegistry.register(store => next => action => {
}
break;
}
case CONFERENCE_JOINED: {
const { conference } = action;
const session = findSessionForConference(store, conference);
const state = session && session.state;
if (state === SESSION_WILL_START) {
if (state === SESSION_CONFIGURED) {
store.dispatch(
setSession({
@ -95,6 +97,7 @@ MiddlewareRegistry.register(store => next => action => {
}
break;
}
case CONFERENCE_LEFT:
case CONFERENCE_FAILED: {
const { conference, error } = action;
@ -206,6 +209,24 @@ MiddlewareRegistry.register(store => next => action => {
}
break;
}
case SET_CONFIG: {
// XXX SET_CONFIG IS ALWAYS RELEVANT
const { locationURL } = store.getState()['features/base/config'];
const url = toURLString(locationURL);
const session = getSession(store, url);
const state = session && session.state;
if (state === SESSION_WILL_START) {
store.dispatch(
setSession({
url,
state: SESSION_CONFIGURED
}));
}
break;
}
case CONFIG_WILL_LOAD: {
const { locationURL } = action;
const url = toURLString(locationURL);
@ -238,6 +259,7 @@ MiddlewareRegistry.register(store => next => action => {
}
break;
}
case LOAD_CONFIG_ERROR: {
const { error, locationURL } = action;
const url = toURLString(locationURL);