import React from 'react'; import ReactDOM from 'react-dom'; import { Provider } from 'unstated'; import { I18nextProvider } from 'react-i18next'; import loggerFactory from '@alias/logger'; import ErrorBoundary from './components/ErrorBoudary'; import AdminHome from './components/Admin/AdminHome/AdminHome'; import UserGroupDetailPage from './components/Admin/UserGroupDetail/UserGroupDetailPage'; import NotificationSetting from './components/Admin/Notification/NotificationSetting'; import ManageGlobalNotification from './components/Admin/Notification/ManageGlobalNotification'; import MarkdownSetting from './components/Admin/MarkdownSetting/MarkDownSetting'; import UserManagement from './components/Admin/UserManagement'; import AppSettingsPage from './components/Admin/App/AppSettingsPage'; import SecurityManagement from './components/Admin/Security/SecurityManagement'; import ManageExternalAccount from './components/Admin/ManageExternalAccount'; import UserGroupPage from './components/Admin/UserGroup/UserGroupPage'; import Customize from './components/Admin/Customize/Customize'; import ImportDataPage from './components/Admin/ImportDataPage'; import ExportArchiveDataPage from './components/Admin/ExportArchiveDataPage'; import FullTextSearchManagement from './components/Admin/FullTextSearchManagement'; import AdminNavigation from './components/Admin/Common/AdminNavigation'; import AdminHomeContainer from './services/AdminHomeContainer'; import AdminCustomizeContainer from './services/AdminCustomizeContainer'; import AdminUserGroupDetailContainer from './services/AdminUserGroupDetailContainer'; import AdminUsersContainer from './services/AdminUsersContainer'; import AdminAppContainer from './services/AdminAppContainer'; import AdminMarkDownContainer from './services/AdminMarkDownContainer'; import AdminExternalAccountsContainer from './services/AdminExternalAccountsContainer'; import AdminGeneralSecurityContainer from './services/AdminGeneralSecurityContainer'; import AdminLdapSecurityContainer from './services/AdminLdapSecurityContainer'; import AdminLocalSecurityContainer from './services/AdminLocalSecurityContainer'; import AdminSamlSecurityContainer from './services/AdminSamlSecurityContainer'; import AdminOidcSecurityContainer from './services/AdminOidcSecurityContainer'; import AdminBasicSecurityContainer from './services/AdminBasicSecurityContainer'; import AdminGoogleSecurityContainer from './services/AdminGoogleSecurityContainer'; import AdminGitHubSecurityContainer from './services/AdminGitHubSecurityContainer'; import AdminTwitterSecurityContainer from './services/AdminTwitterSecurityContainer'; import AdminNotificationContainer from './services/AdminNotificationContainer'; import { appContainer, componentMappings } from './base'; const logger = loggerFactory('growi:admin'); appContainer.initContents(); const { i18n } = appContainer; const websocketContainer = appContainer.getContainer('WebsocketContainer'); // create unstated container instance const adminAppContainer = new AdminAppContainer(appContainer); const adminHomeContainer = new AdminHomeContainer(appContainer); const adminCustomizeContainer = new AdminCustomizeContainer(appContainer); const adminUsersContainer = new AdminUsersContainer(appContainer); const adminExternalAccountsContainer = new AdminExternalAccountsContainer(appContainer); const adminNotificationContainer = new AdminNotificationContainer(appContainer); const adminMarkDownContainer = new AdminMarkDownContainer(appContainer); const adminUserGroupDetailContainer = new AdminUserGroupDetailContainer(appContainer); const injectableContainers = [ appContainer, websocketContainer, adminAppContainer, adminHomeContainer, adminCustomizeContainer, adminUsersContainer, adminExternalAccountsContainer, adminNotificationContainer, adminNotificationContainer, adminMarkDownContainer, adminUserGroupDetailContainer, ]; logger.info('unstated containers have been initialized'); /** * define components * key: id of element * value: React Element */ Object.assign(componentMappings, { 'admin-home': , 'admin-app': , 'admin-markdown-setting': , 'admin-customize': , 'admin-importer': , 'admin-export-page': , 'admin-notification-setting': , 'admin-global-notification-setting': , 'admin-user-page': , 'admin-external-account-setting': , 'admin-user-group-detail': , 'admin-full-text-search-management': , 'admin-user-group-page': , 'admin-navigation': , }); Object.keys(componentMappings).forEach((key) => { const elem = document.getElementById(key); if (elem) { ReactDOM.render( {componentMappings[key]} , elem, ); } }); const adminSecuritySettingElem = document.getElementById('admin-security-setting'); if (adminSecuritySettingElem != null) { const adminGeneralSecurityContainer = new AdminGeneralSecurityContainer(appContainer); const adminLocalSecurityContainer = new AdminLocalSecurityContainer(appContainer); const adminLdapSecurityContainer = new AdminLdapSecurityContainer(appContainer); const adminSamlSecurityContainer = new AdminSamlSecurityContainer(appContainer); const adminOidcSecurityContainer = new AdminOidcSecurityContainer(appContainer); const adminBasicSecurityContainer = new AdminBasicSecurityContainer(appContainer); const adminGoogleSecurityContainer = new AdminGoogleSecurityContainer(appContainer); const adminGitHubSecurityContainer = new AdminGitHubSecurityContainer(appContainer); const adminTwitterSecurityContainer = new AdminTwitterSecurityContainer(appContainer); const adminSecurityContainers = [ adminGeneralSecurityContainer, adminLocalSecurityContainer, adminLdapSecurityContainer, adminSamlSecurityContainer, adminOidcSecurityContainer, adminBasicSecurityContainer, adminGoogleSecurityContainer, adminGitHubSecurityContainer, adminTwitterSecurityContainer, ]; ReactDOM.render( , adminSecuritySettingElem, ); }