base.jsx 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import React from 'react';
  2. import EventEmitter from 'events';
  3. import AppContainer from '~/client/services/AppContainer';
  4. import SocketIoContainer from '~/client/services/SocketIoContainer';
  5. import { DescendantsPageListModal } from '~/components/DescendantsPageListModal';
  6. import PutbackPageModal from '~/components/PutbackPageModal';
  7. import ShortcutsModal from '~/components/ShortcutsModal';
  8. import SystemVersion from '~/components/SystemVersion';
  9. import InterceptorManager from '~/services/interceptor-manager';
  10. import Xss from '~/services/xss';
  11. import loggerFactory from '~/utils/logger';
  12. import EmptyTrashModal from '../components/EmptyTrashModal';
  13. import HotkeysManager from '../components/Hotkeys/HotkeysManager';
  14. import GrowiNavbar from '../components/Navbar/GrowiNavbar';
  15. import GrowiNavbarBottom from '../components/Navbar/GrowiNavbarBottom';
  16. import PageAccessoriesModal from '../components/PageAccessoriesModal';
  17. import PageCreateModal from '../components/PageCreateModal';
  18. import PageDeleteModal from '../components/PageDeleteModal';
  19. import PageDuplicateModal from '../components/PageDuplicateModal';
  20. import PagePresentationModal from '../components/PagePresentationModal';
  21. import PageRenameModal from '../components/PageRenameModal';
  22. import ShowPageAccessoriesModal from './services/ShowPageAccessoriesModal';
  23. const logger = loggerFactory('growi:cli:app');
  24. if (!window) {
  25. window = {};
  26. }
  27. // setup xss library
  28. const xss = new Xss();
  29. window.xss = xss;
  30. window.globalEmitter = new EventEmitter();
  31. window.interceptorManager = new InterceptorManager();
  32. // create unstated container instance
  33. const appContainer = new AppContainer();
  34. // eslint-disable-next-line no-unused-vars
  35. const socketIoContainer = new SocketIoContainer(appContainer);
  36. appContainer.initApp();
  37. logger.info('AppContainer has been initialized');
  38. /**
  39. * define components
  40. * key: id of element
  41. * value: React Element
  42. */
  43. const componentMappings = {
  44. 'grw-navbar': <GrowiNavbar />,
  45. 'grw-navbar-bottom-container': <GrowiNavbarBottom />,
  46. 'page-create-modal': <PageCreateModal />,
  47. 'page-delete-modal': <PageDeleteModal />,
  48. 'empty-trash-modal': <EmptyTrashModal />,
  49. 'page-duplicate-modal': <PageDuplicateModal />,
  50. 'page-rename-modal': <PageRenameModal />,
  51. 'page-presentation-modal': <PagePresentationModal />,
  52. 'page-accessories-modal': <PageAccessoriesModal />,
  53. 'descendants-page-list-modal': <DescendantsPageListModal />,
  54. 'page-put-back-modal': <PutbackPageModal />,
  55. 'shortcuts-modal': <ShortcutsModal />,
  56. 'grw-hotkeys-manager': <HotkeysManager />,
  57. 'system-version': <SystemVersion />,
  58. 'show-page-accessories-modal': <ShowPageAccessoriesModal />,
  59. };
  60. export { appContainer, componentMappings };