SecurityManagement.tsx 1.2 KB

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