base.jsx 1.2 KB

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