base.jsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import React from 'react';
  2. import loggerFactory from '@alias/logger';
  3. import Xss from '@commons/service/xss';
  4. import GrowiNavbar from './components/Navbar/GrowiNavbar';
  5. import GrowiNavbarBottom from './components/Navbar/GrowiNavbarBottom';
  6. import Sidebar from './components/Sidebar';
  7. import HotkeysManager from './components/Hotkeys/HotkeysManager';
  8. import AppContainer from './services/AppContainer';
  9. import SocketIoContainer from './services/SocketIoContainer';
  10. import PageCreateModal from './components/PageCreateModal';
  11. const logger = loggerFactory('growi:cli:app');
  12. if (!window) {
  13. window = {};
  14. }
  15. // setup xss library
  16. const xss = new Xss();
  17. window.xss = xss;
  18. // create unstated container instance
  19. const appContainer = new AppContainer();
  20. // eslint-disable-next-line no-unused-vars
  21. const socketIoContainer = new SocketIoContainer(appContainer);
  22. appContainer.initApp();
  23. logger.info('AppContainer has been initialized');
  24. /**
  25. * define components
  26. * key: id of element
  27. * value: React Element
  28. */
  29. const componentMappings = {
  30. 'grw-navbar': <GrowiNavbar />,
  31. 'grw-navbar-bottom-container': <GrowiNavbarBottom />,
  32. 'page-create-modal': <PageCreateModal />,
  33. 'grw-sidebar-wrapper': <Sidebar />,
  34. 'grw-hotkeys-manager': <HotkeysManager />,
  35. };
  36. export { appContainer, componentMappings };