bootstrap.jsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import React from 'react';
  2. import loggerFactory from '@alias/logger';
  3. import Xss from '@commons/service/xss';
  4. import HeaderSearchBox from './components/HeaderSearchBox';
  5. import StaffCredit from './components/StaffCredit/StaffCredit';
  6. import AppContainer from './services/AppContainer';
  7. import WebsocketContainer from './services/WebsocketContainer';
  8. const logger = loggerFactory('growi:app');
  9. if (!window) {
  10. window = {};
  11. }
  12. // setup xss library
  13. const xss = new Xss();
  14. window.xss = xss;
  15. // create unstated container instance
  16. const appContainer = new AppContainer();
  17. // eslint-disable-next-line no-unused-vars
  18. const websocketContainer = new WebsocketContainer(appContainer);
  19. logger.info('unstated containers have been initialized');
  20. appContainer.initPlugins();
  21. appContainer.injectToWindow();
  22. /**
  23. * define components
  24. * key: id of element
  25. * value: React Element
  26. */
  27. const componentMappings = {
  28. 'search-top': <HeaderSearchBox />,
  29. 'search-sidebar': <HeaderSearchBox crowi={appContainer} />,
  30. 'staff-credit': <StaffCredit />,
  31. };
  32. export { appContainer, componentMappings };