Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

index.web.js 2.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /* global APP */
  2. import React from 'react';
  3. import ReactDOM from 'react-dom';
  4. import { browserHistory } from 'react-router';
  5. import {
  6. routerMiddleware,
  7. routerReducer
  8. } from 'react-router-redux';
  9. import { compose, createStore } from 'redux';
  10. import Thunk from 'redux-thunk';
  11. import config from './config';
  12. import { App } from './features/app';
  13. import {
  14. MiddlewareRegistry,
  15. ReducerRegistry
  16. } from './features/base/redux';
  17. const logger = require('jitsi-meet-logger').getLogger(__filename);
  18. // Create combined reducer from all reducers in registry + routerReducer from
  19. // 'react-router-redux' module (stores location updates from history).
  20. // @see https://github.com/reactjs/react-router-redux#routerreducer.
  21. const reducer = ReducerRegistry.combineReducers({
  22. routing: routerReducer
  23. });
  24. // Apply all registered middleware from the MiddlewareRegistry + additional
  25. // 3rd party middleware:
  26. // - Thunk - allows us to dispatch async actions easily. For more info
  27. // @see https://github.com/gaearon/redux-thunk.
  28. // - routerMiddleware - middleware from 'react-router-redux' module to track
  29. // changes in browser history inside Redux state. For more information
  30. // @see https://github.com/reactjs/react-router-redux.
  31. let middleware = MiddlewareRegistry.applyMiddleware(
  32. Thunk,
  33. routerMiddleware(browserHistory));
  34. // Try to enable Redux DevTools Chrome extension in order to make it available
  35. // for the purposes of facilitating development.
  36. let devToolsExtension;
  37. if (typeof window === 'object'
  38. && (devToolsExtension = window.devToolsExtension)) {
  39. middleware = compose(middleware, devToolsExtension());
  40. }
  41. // Create Redux store with our reducer and middleware.
  42. const store = createStore(reducer, middleware);
  43. /**
  44. * Render the app when DOM tree has been loaded.
  45. */
  46. document.addEventListener('DOMContentLoaded', () => {
  47. const now = window.performance.now();
  48. APP.connectionTimes['document.ready'] = now;
  49. logger.log('(TIME) document ready:\t', now);
  50. // Render the main Component.
  51. ReactDOM.render(
  52. <App
  53. config = { config }
  54. store = { store }
  55. url = { window.location.toString() } />,
  56. document.getElementById('react'));
  57. });
  58. /**
  59. * Stop collecting the logs and disposing the API when
  60. * user closes the page.
  61. */
  62. window.addEventListener('beforeunload', () => {
  63. // Stop the LogCollector
  64. if (APP.logCollectorStarted) {
  65. APP.logCollector.stop();
  66. APP.logCollectorStarted = false;
  67. }
  68. APP.API.dispose();
  69. });