Lyubo Marinov bd7c9473e7 [Android] Fix possible TypeError in multi-JitsiMeetView SDK consumers
If multiple JitsiMeetView instances are created (not necessarily
existing at once), it's possible to hit a TypeError when reading the
React Component props of the currently mounted App. Anyway, in certain
places we're already protecting against that out of abundance of caution
so it makes no sense to not protect everywhere.
2018-05-09 23:45:24 -05:00

56 lines
1.9 KiB
JavaScript

// @flow
import { getAppProp } from '../app';
import { toState } from '../base/redux';
declare var APP: Object;
declare var config: Object;
export * from './roomnameGenerator';
/**
* Determines whether the {@code WelcomePage} is enabled by the app itself
* (e.g. programmatically via the Jitsi Meet SDK for Android and iOS). Not to be
* confused with {@link isWelcomePageUserEnabled}.
*
* @param {Function|Object} stateful - The redux state or {@link getState}
* function.
* @returns {boolean} If the {@code WelcomePage} is enabled by the app, then
* {@code true}; otherwise, {@code false}.
*/
export function isWelcomePageAppEnabled(stateful: Function | Object) {
let b;
if (navigator.product === 'ReactNative') {
// We introduced the welcomePageEnabled prop on App in Jitsi Meet SDK
// for Android and iOS. There isn't a strong reason not to introduce it
// on Web but there're a few considerations to be taken before I go
// there among which:
// - Enabling/disabling the Welcome page on Web historically
// automatically redirects to a random room and that does not make sense
// on mobile (right now).
b = Boolean(getAppProp(stateful, 'welcomePageEnabled'));
} else {
b = true;
}
return b;
}
/**
* Determines whether the {@code WelcomePage} is enabled by the user either
* herself or through her deployment config(uration). Not to be confused with
* {@link isWelcomePageAppEnabled}.
*
* @param {Function|Object} stateful - The redux state or {@link getState}
* function.
* @returns {boolean} If the {@code WelcomePage} is enabled by the user, then
* {@code true}; otherwise, {@code false}.
*/
export function isWelcomePageUserEnabled(stateful: Function | Object) {
return (
typeof APP === 'undefined'
? true
: toState(stateful)['features/base/config'].enableWelcomePage);
}