import React, { Suspense } from 'react'; import PropTypes from 'prop-types'; import { toastError } from '../../../util/apiNotification'; import { withUnstatedContainers } from '../../UnstatedUtils'; import toArrayIfNot from '../../../../../lib/util/toArrayIfNot'; import AdminGeneralSecurityContainer from '../../../services/AdminGeneralSecurityContainer'; import SecurityManagementContents from './SecurityManagementContents'; let retrieveErrors = null; function SecurityManagement(props) { const { adminGeneralSecurityContainer } = props; if (adminGeneralSecurityContainer.state.currentRestrictGuestMode === adminGeneralSecurityContainer.dummyCurrentRestrictGuestMode) { throw (async() => { try { await adminGeneralSecurityContainer.retrieveSecurityData(); } catch (err) { const errs = toArrayIfNot(err); toastError(errs); retrieveErrors = errs; adminGeneralSecurityContainer.setState({ currentRestrictGuestMode: adminGeneralSecurityContainer.dummyCurrentRestrictGuestModeForError, }); } })(); } if (adminGeneralSecurityContainer.state.currentRestrictGuestMode === adminGeneralSecurityContainer.dummyCurrentRestrictGuestModeForError) { throw new Error(`${retrieveErrors.length} errors occured`); } return ; } SecurityManagement.propTypes = { adminGeneralSecurityContainer: PropTypes.instanceOf(AdminGeneralSecurityContainer).isRequired, }; const SecurityManagementWithUnstatedContainer = withUnstatedContainers(SecurityManagement, [AdminGeneralSecurityContainer]); function SecurityManagementWithContainerWithSuspense(props) { return ( )} > ); } export default SecurityManagementWithContainerWithSuspense;