SamlSecuritySetting.jsx 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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 new Promise(async() => {
  12. try {
  13. await adminSamlSecurityContainer.retrieveSecurityData();
  14. }
  15. catch (err) {
  16. toastError(err);
  17. adminSamlSecurityContainer.setState({ retrieveError: err.message });
  18. }
  19. });
  20. }
  21. return <SamlSecuritySettingContents />;
  22. }
  23. SamlSecurityManagement.propTypes = {
  24. adminSamlSecurityContainer: PropTypes.instanceOf(AdminSamlSecurityContainer).isRequired,
  25. };
  26. const SamlSecurityManagementWithUnstatedContainer = withUnstatedContainers(SamlSecurityManagement, [
  27. AdminSamlSecurityContainer,
  28. ]);
  29. function SamlSecurityManagementWithContainerWithSuspense(props) {
  30. return (
  31. <Suspense
  32. fallback={(
  33. <div className="row">
  34. <i className="fa fa-5x fa-spinner fa-pulse mx-auto text-muted"></i>
  35. </div>
  36. )}
  37. >
  38. <SamlSecurityManagementWithUnstatedContainer />
  39. </Suspense>
  40. );
  41. }
  42. export default SamlSecurityManagementWithContainerWithSuspense;