BasicSecuritySetting.jsx 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /* eslint-disable react/no-danger */
  2. import React from 'react';
  3. import PropTypes from 'prop-types';
  4. import { withUnstatedContainers } from '../../UnstatedUtils';
  5. import { toastError } from '../../../util/apiNotification';
  6. import toArrayIfNot from '../../../../../lib/util/toArrayIfNot';
  7. import { withLoadingSppiner } from '../../SuspenseUtils';
  8. import AdminBasicSecurityContainer from '../../../services/AdminBasicSecurityContainer';
  9. import BasicSecurityManagementContents from './BasicSecuritySettingContents';
  10. let retrieveErrors = null;
  11. function BasicSecurityManagement(props) {
  12. const { adminBasicSecurityContainer } = props;
  13. if (adminBasicSecurityContainer.state.isSameUsernameTreatedAsIdenticalUser === adminBasicSecurityContainer.dummyIsSameUsernameTreatedAsIdenticalUser) {
  14. throw (async() => {
  15. try {
  16. await adminBasicSecurityContainer.retrieveSecurityData();
  17. }
  18. catch (err) {
  19. const errs = toArrayIfNot(err);
  20. toastError(errs);
  21. retrieveErrors = errs;
  22. adminBasicSecurityContainer.setState({
  23. isSameUsernameTreatedAsIdenticalUser: adminBasicSecurityContainer.dummyIsSameUsernameTreatedAsIdenticalUser,
  24. });
  25. }
  26. })();
  27. }
  28. if (
  29. adminBasicSecurityContainer.state.isSameUsernameTreatedAsIdenticalUser === adminBasicSecurityContainer.dummyIsSameUsernameTreatedAsIdenticalUserForError
  30. ) {
  31. throw new Error(`${retrieveErrors.length} errors occured`);
  32. }
  33. return <BasicSecurityManagementContents />;
  34. }
  35. BasicSecurityManagement.propTypes = {
  36. adminBasicSecurityContainer: PropTypes.instanceOf(AdminBasicSecurityContainer).isRequired,
  37. };
  38. const BasicSecurityManagementWithUnstatedContainer = withUnstatedContainers(withLoadingSppiner(BasicSecurityManagement), [
  39. AdminBasicSecurityContainer,
  40. ]);
  41. export default BasicSecurityManagementWithUnstatedContainer;