123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- /* global APP, loggingConfig */
-
- import { isRoomValid } from '../base/conference';
- import JitsiMeetJS from '../base/lib-jitsi-meet';
- import { RouteRegistry } from '../base/react';
- import { interceptComponent } from '../base/util';
- import { Conference } from '../conference';
- import { WelcomePage } from '../welcome';
-
- import URLProcessor from '../../../modules/config/URLProcessor';
- import KeyboardShortcut
- from '../../../modules/keyboardshortcut/keyboardshortcut';
- import settings from '../../../modules/settings/Settings';
- import getTokenData from '../../../modules/tokendata/TokenData';
- import JitsiMeetLogStorage from '../../../modules/util/JitsiMeetLogStorage';
-
- const Logger = require('jitsi-meet-logger');
-
- export { _parseURIString } from './functions.native';
-
- /**
- * Determines which route is to be rendered in order to depict a specific Redux
- * store.
- *
- * @param {(Object|Function)} stateOrGetState - Redux state or Regux getState()
- * method.
- * @returns {Route}
- */
- export function _getRouteToRender(stateOrGetState) {
- const state
- = typeof stateOrGetState === 'function'
- ? stateOrGetState()
- : stateOrGetState;
-
- // If mobile browser page was shown, there is no need to show it again.
- const { room } = state['features/base/conference'];
- const component = isRoomValid(room) ? Conference : WelcomePage;
- const route = RouteRegistry.getRouteByComponent(component);
-
- // Intercepts route components if any of component interceptor rules
- // is satisfied.
- route.component = interceptComponent(state, component);
-
- return route;
- }
-
- /**
- * Temporary solution. Later we'll get rid of global APP and set its properties
- * in redux store.
- *
- * @returns {void}
- */
- export function init() {
- URLProcessor.setConfigParametersFromUrl();
- _initLogging();
-
- APP.keyboardshortcut = KeyboardShortcut;
- APP.tokenData = getTokenData();
-
- // Force enable the API if jwt token is passed because most probably
- // jitsi meet is displayed inside of wrapper that will need to communicate
- // with jitsi meet.
- APP.API.init(APP.tokenData.jwt ? { forceEnable: true } : undefined);
-
- APP.translation.init(settings.getLanguage());
- }
-
- /**
- * Adjusts the logging levels.
- *
- * @private
- * @returns {void}
- */
- function _configureLoggingLevels() {
- // NOTE The library Logger is separated from the app loggers, so the levels
- // have to be set in two places
-
- // Set default logging level
- const defaultLogLevel
- = loggingConfig.defaultLogLevel || JitsiMeetJS.logLevels.TRACE;
-
- Logger.setLogLevel(defaultLogLevel);
- JitsiMeetJS.setLogLevel(defaultLogLevel);
-
- // NOTE console was used on purpose here to go around the logging and always
- // print the default logging level to the console
- console.info(`Default logging level set to: ${defaultLogLevel}`);
-
- // Set log level for each logger
- if (loggingConfig) {
- Object.keys(loggingConfig).forEach(loggerName => {
- if (loggerName !== 'defaultLogLevel') {
- const level = loggingConfig[loggerName];
-
- Logger.setLogLevelById(level, loggerName);
- JitsiMeetJS.setLogLevelById(level, loggerName);
- }
- });
- }
- }
-
- /**
- * Initializes logging in the app.
- *
- * @private
- * @returns {void}
- */
- function _initLogging() {
- // Adjust logging level
- _configureLoggingLevels();
-
- // Create the LogCollector and register it as the global log transport. It
- // is done early to capture as much logs as possible. Captured logs will be
- // cached, before the JitsiMeetLogStorage gets ready (statistics module is
- // initialized).
- if (!APP.logCollector && !loggingConfig.disableLogCollector) {
- APP.logCollector = new Logger.LogCollector(new JitsiMeetLogStorage());
- Logger.addGlobalTransport(APP.logCollector);
- JitsiMeetJS.addGlobalLogTransport(APP.logCollector);
- }
- }
|