SamlSecuritySetting.jsx 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /* eslint-disable react/no-danger */
  2. import React, { Suspense } from 'react';
  3. import PropTypes from 'prop-types';
  4. import { withUnstatedContainers } from '../../UnstatedUtils';
  5. import { toastError } from '../../../util/apiNotification';
  6. import AdminSamlSecurityContainer from '../../../services/AdminSamlSecurityContainer';
  7. import SamlSecuritySettingContents from './SamlSecuritySettingContents';
  8. function SamlSecurityManagement(props) {
  9. const { adminSamlSecurityContainer } = props;
  10. if (adminSamlSecurityContainer.state.samlEntryPoint === adminSamlSecurityContainer.dummySamlEntryPoint) {
  11. throw (async() => {
  12. try {
  13. await adminSamlSecurityContainer.retrieveSecurityData();
  14. }
  15. catch (err) {
  16. toastError(err);
  17. adminSamlSecurityContainer.setState({ samlEntryPoint: adminSamlSecurityContainer.dummySamlEntryPointForError, retrieveError: err[0].message });
  18. }
  19. })();
  20. }
  21. if (adminSamlSecurityContainer.state.samlEntryPoint === adminSamlSecurityContainer.dummySamlEntryPointForError) {
  22. throw new Error(adminSamlSecurityContainer.state.retrieveError);
  23. }
  24. return <SamlSecuritySettingContents />;
  25. }
  26. SamlSecurityManagement.propTypes = {
  27. adminSamlSecurityContainer: PropTypes.instanceOf(AdminSamlSecurityContainer).isRequired,
  28. };
  29. const SamlSecurityManagementWithUnstatedContainer = withUnstatedContainers(SamlSecurityManagement, [
  30. AdminSamlSecurityContainer,
  31. ]);
  32. function SamlSecurityManagementWithContainerWithSuspense(props) {
  33. return (
  34. <Suspense
  35. fallback={(
  36. <div className="row">
  37. <i className="fa fa-5x fa-spinner fa-pulse mx-auto text-muted"></i>
  38. </div>
  39. )}
  40. >
  41. <SamlSecurityManagementWithUnstatedContainer />
  42. </Suspense>
  43. );
  44. }
  45. export default SamlSecurityManagementWithContainerWithSuspense;