base.jsx 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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 PageDeleteModal from '../components/PageDeleteModal';
  9. import PageDuplicateModal from '../components/PageDuplicateModal';
  10. import PageRenameModal from '../components/PageRenameModal';
  11. import PageAccessoriesModal from '../components/PageAccessoriesModal';
  12. import AppContainer from '~/client/services/AppContainer';
  13. import SocketIoContainer from '~/client/services/SocketIoContainer';
  14. import { DescendantsPageListModal } from '~/components/DescendantsPageListModal';
  15. const logger = loggerFactory('growi:cli:app');
  16. if (!window) {
  17. window = {};
  18. }
  19. // setup xss library
  20. const xss = new Xss();
  21. window.xss = xss;
  22. // create unstated container instance
  23. const appContainer = new AppContainer();
  24. // eslint-disable-next-line no-unused-vars
  25. const socketIoContainer = new SocketIoContainer(appContainer);
  26. appContainer.initApp();
  27. logger.info('AppContainer has been initialized');
  28. /**
  29. * define components
  30. * key: id of element
  31. * value: React Element
  32. */
  33. const componentMappings = {
  34. 'grw-navbar': <GrowiNavbar />,
  35. 'grw-navbar-bottom-container': <GrowiNavbarBottom />,
  36. 'page-create-modal': <PageCreateModal />,
  37. 'page-delete-modal': <PageDeleteModal />,
  38. 'page-duplicate-modal': <PageDuplicateModal />,
  39. 'page-rename-modal': <PageRenameModal />,
  40. 'page-accessories-modal': <PageAccessoriesModal />,
  41. 'descendants-page-list-modal': <DescendantsPageListModal />,
  42. 'grw-hotkeys-manager': <HotkeysManager />,
  43. };
  44. export { appContainer, componentMappings };