SecurityManagement.tsx 1.2 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. type Props = {
  9. adminGeneralSecurityContainer: AdminGeneralSecurityContainer
  10. }
  11. const SecurityManagement = (props: Props) => {
  12. const { adminGeneralSecurityContainer } = props;
  13. const fetchGeneralSecuritySettingsData = useCallback(async() => {
  14. try {
  15. await adminGeneralSecurityContainer.retrieveSecurityData();
  16. }
  17. catch (err) {
  18. const errs = toArrayIfNot(err);
  19. toastError(errs);
  20. }
  21. }, [adminGeneralSecurityContainer]);
  22. useEffect(() => {
  23. fetchGeneralSecuritySettingsData();
  24. }, [adminGeneralSecurityContainer, fetchGeneralSecuritySettingsData]);
  25. return <SecurityManagementContents />;
  26. };
  27. const SecurityManagementWithUnstatedContainer = withUnstatedContainers(SecurityManagement, [AdminGeneralSecurityContainer]);
  28. export default SecurityManagementWithUnstatedContainer;