49 lines
1.6 KiB
JavaScript
49 lines
1.6 KiB
JavaScript
/* @flow */
|
|
|
|
import { RouteRegistry } from '../base/react';
|
|
|
|
import { WelcomePage } from './components';
|
|
import { generateRoomWithoutSeparator } from './roomnameGenerator';
|
|
|
|
declare var APP: Object;
|
|
declare var config: Object;
|
|
|
|
/**
|
|
* Register route for WelcomePage.
|
|
*/
|
|
RouteRegistry.register({
|
|
component: WelcomePage,
|
|
onEnter,
|
|
path: '/'
|
|
});
|
|
|
|
/**
|
|
* If the Welcome page/screen is disabled, generates a (random) room (name) so
|
|
* that the Welcome page/screen is skipped and the Conference page/screen is
|
|
* presented instead.
|
|
*
|
|
* @param {Object} nextState - The next Router state.
|
|
* @param {Function} replace - The function to redirect to another path.
|
|
* @returns {void}
|
|
*/
|
|
function onEnter(nextState, replace) {
|
|
// The disabling of the Welcome page by redirecting to a random room name is
|
|
// a feature (1) we have on Web/React and (2) we do not want on mobile/React
|
|
// Native (at the time of this writing).
|
|
if (typeof APP === 'object'
|
|
|
|
// TODO Technically, there is features/base/config now so it is
|
|
// preferable to read config(uration) values from there and not rely
|
|
// on a global variable. However, the redux store is not available
|
|
// here at the time of this writing. Given the current (1) Web
|
|
// exclusivity of the feature and (2) the reliance on other global
|
|
// variables (e.g. APP), go with the global variable for now in
|
|
// order to minimize the effort involved.
|
|
&& !(config.enableWelcomePage
|
|
&& APP.settings.isWelcomePageEnabled())) {
|
|
const room = generateRoomWithoutSeparator();
|
|
|
|
replace(`/${room}`);
|
|
}
|
|
}
|