/* eslint-disable react/no-danger */ import React from 'react'; import PropTypes from 'prop-types'; import { withUnstatedContainers } from '../../UnstatedUtils'; import { toastError } from '../../../util/apiNotification'; import toArrayIfNot from '../../../../../lib/util/toArrayIfNot'; import { withLoadingSppiner } from '../../SuspenseUtils'; import AdminBasicSecurityContainer from '../../../services/AdminBasicSecurityContainer'; import BasicSecurityManagementContents from './BasicSecuritySettingContents'; let retrieveErrors = null; function BasicSecurityManagement(props) { const { adminBasicSecurityContainer } = props; if (adminBasicSecurityContainer.state.isSameUsernameTreatedAsIdenticalUser === adminBasicSecurityContainer.dummyIsSameUsernameTreatedAsIdenticalUser) { throw (async() => { try { await adminBasicSecurityContainer.retrieveSecurityData(); } catch (err) { const errs = toArrayIfNot(err); toastError(errs); retrieveErrors = errs; adminBasicSecurityContainer.setState({ isSameUsernameTreatedAsIdenticalUser: adminBasicSecurityContainer.dummyIsSameUsernameTreatedAsIdenticalUser, }); } })(); } if ( adminBasicSecurityContainer.state.isSameUsernameTreatedAsIdenticalUser === adminBasicSecurityContainer.dummyIsSameUsernameTreatedAsIdenticalUserForError ) { throw new Error(`${retrieveErrors.length} errors occured`); } return ; } BasicSecurityManagement.propTypes = { adminBasicSecurityContainer: PropTypes.instanceOf(AdminBasicSecurityContainer).isRequired, }; const BasicSecurityManagementWithUnstatedContainer = withUnstatedContainers(withLoadingSppiner(BasicSecurityManagement), [ AdminBasicSecurityContainer, ]); export default BasicSecurityManagementWithUnstatedContainer;