base.jsx 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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 ShareLinkAlert from './components/Page/ShareLinkAlert';
  8. import HotkeysManager from './components/Hotkeys/HotkeysManager';
  9. import Fab from './components/Fab';
  10. import AppContainer from './services/AppContainer';
  11. import SocketIoContainer from './services/SocketIoContainer';
  12. import PageCreateModal from './components/PageCreateModal';
  13. const logger = loggerFactory('growi:cli:app');
  14. if (!window) {
  15. window = {};
  16. }
  17. // setup xss library
  18. const xss = new Xss();
  19. window.xss = xss;
  20. // create unstated container instance
  21. const appContainer = new AppContainer();
  22. // eslint-disable-next-line no-unused-vars
  23. const socketIoContainer = new SocketIoContainer(appContainer);
  24. appContainer.initApp();
  25. logger.info('AppContainer has been initialized');
  26. /**
  27. * define components
  28. * key: id of element
  29. * value: React Element
  30. */
  31. const componentMappings = {
  32. 'grw-navbar': <GrowiNavbar />,
  33. 'grw-navbar-bottom-container': <GrowiNavbarBottom />,
  34. 'page-create-modal': <PageCreateModal />,
  35. 'grw-sidebar-wrapper': <Sidebar />,
  36. 'grw-fab-container': <Fab />,
  37. 'grw-hotkeys-manager': <HotkeysManager />,
  38. 'share-link-alert': <ShareLinkAlert />,
  39. };
  40. export { appContainer, componentMappings };