GitHubSecuritySetting.jsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import React, { useCallback, useEffect } from 'react';
  2. import PropTypes from 'prop-types';
  3. import AdminGitHubSecurityContainer from '~/client/services/AdminGitHubSecurityContainer';
  4. import { toastError } from '~/client/util/toastr';
  5. import { toArrayIfNot } from '~/utils/array-utils';
  6. import { withUnstatedContainers } from '../../UnstatedUtils';
  7. import GitHubSecuritySettingContents from './GitHubSecuritySettingContents';
  8. const GitHubSecurityManagement = (props) => {
  9. const { adminGitHubSecurityContainer } = props;
  10. const fetchGitHubSecuritySettingsData = useCallback(async () => {
  11. try {
  12. await adminGitHubSecurityContainer.retrieveSecurityData();
  13. } catch (err) {
  14. const errs = toArrayIfNot(err);
  15. toastError(errs);
  16. }
  17. }, [adminGitHubSecurityContainer]);
  18. useEffect(() => {
  19. fetchGitHubSecuritySettingsData();
  20. }, [fetchGitHubSecuritySettingsData]);
  21. return <GitHubSecuritySettingContents />;
  22. };
  23. GitHubSecurityManagement.propTypes = {
  24. adminGitHubSecurityContainer: PropTypes.instanceOf(
  25. AdminGitHubSecurityContainer,
  26. ).isRequired,
  27. };
  28. const GitHubSecurityManagementWithUnstatedContainer = withUnstatedContainers(
  29. GitHubSecurityManagement,
  30. [AdminGitHubSecurityContainer],
  31. );
  32. export default GitHubSecurityManagementWithUnstatedContainer;