GitHubSecuritySetting.jsx 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import React, { useEffect, useCallback } 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. }
  14. catch (err) {
  15. const errs = toArrayIfNot(err);
  16. toastError(errs);
  17. }
  18. }, [adminGitHubSecurityContainer]);
  19. useEffect(() => {
  20. fetchGitHubSecuritySettingsData();
  21. }, [adminGitHubSecurityContainer, fetchGitHubSecuritySettingsData]);
  22. return <GitHubSecuritySettingContents />;
  23. };
  24. GitHubSecurityManagement.propTypes = {
  25. adminGitHubSecurityContainer: PropTypes.instanceOf(AdminGitHubSecurityContainer).isRequired,
  26. };
  27. const GitHubSecurityManagementWithUnstatedContainer = withUnstatedContainers(GitHubSecurityManagement, [
  28. AdminGitHubSecurityContainer,
  29. ]);
  30. export default GitHubSecurityManagementWithUnstatedContainer;