SecurityManagement.jsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import React, { useEffect, useCallback } from 'react';
  2. import PropTypes from 'prop-types';
  3. import AdminGeneralSecurityContainer from '~/client/services/AdminGeneralSecurityContainer';
  4. import { toastError } from '~/client/util/apiNotification';
  5. import { toArrayIfNot } from '~/utils/array-utils';
  6. import { withUnstatedContainers } from '../../UnstatedUtils';
  7. import SecurityManagementContents from './SecurityManagementContents';
  8. function SecurityManagement(props) {
  9. const { adminGeneralSecurityContainer } = props;
  10. const fetchGeneralSecuritySettingsData = useCallback(async() => {
  11. try {
  12. await adminGeneralSecurityContainer.retrieveSecurityData();
  13. }
  14. catch (err) {
  15. const errs = toArrayIfNot(err);
  16. toastError(errs);
  17. }
  18. }, [adminGeneralSecurityContainer]);
  19. useEffect(() => {
  20. fetchGeneralSecuritySettingsData();
  21. }, [adminGeneralSecurityContainer, fetchGeneralSecuritySettingsData]);
  22. return <SecurityManagementContents />;
  23. }
  24. SecurityManagement.propTypes = {
  25. adminGeneralSecurityContainer: PropTypes.instanceOf(AdminGeneralSecurityContainer).isRequired,
  26. };
  27. const SecurityManagementWithUnstatedContainer = withUnstatedContainers(SecurityManagement, [AdminGeneralSecurityContainer]);
  28. export default SecurityManagementWithUnstatedContainer;