import React from 'react'; import PropTypes from 'prop-types'; import AdminAppContainer from '~/client/services/AdminAppContainer'; import { toastError } from '~/client/util/apiNotification'; import { toArrayIfNot } from '~/utils/array-utils'; import loggerFactory from '~/utils/logger'; import { withUnstatedContainers } from '../../UnstatedUtils'; import AppSettingsPageContents from './AppSettingsPageContents'; const logger = loggerFactory('growi:appSettings'); let retrieveErrors = null; function AppSettingsPage(props) { if (props.adminAppContainer.state.title === props.adminAppContainer.dummyTitle) { throw (async() => { try { await props.adminAppContainer.retrieveAppSettingsData(); } catch (err) { const errs = toArrayIfNot(err); toastError(errs); logger.error(errs); props.adminAppContainer.setState({ title: props.adminAppContainer.dummyTitleForError, }); retrieveErrors = errs; } })(); } if (props.adminAppContainer.state.title === props.adminAppContainer.dummyTitleForError) { throw new Error(`${retrieveErrors.length} errors occured`); } return ; } AppSettingsPage.propTypes = { adminAppContainer: PropTypes.instanceOf(AdminAppContainer).isRequired, }; /** * Wrapper component for using unstated */ const AppSettingsPageWithUnstatedContainer = withUnstatedContainers(AppSettingsPage, [AdminAppContainer]); export default AppSettingsPageWithUnstatedContainer;