SecurityManagement.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import React, { useCallback, useEffect } 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. } catch (err) {
  16. const errs = toArrayIfNot(err);
  17. toastError(errs);
  18. }
  19. }, [adminGeneralSecurityContainer]);
  20. useEffect(() => {
  21. fetchGeneralSecuritySettingsData();
  22. }, [fetchGeneralSecuritySettingsData]);
  23. return <SecurityManagementContents />;
  24. };
  25. const SecurityManagementWithUnstatedContainer = withUnstatedContainers(
  26. SecurityManagement,
  27. [AdminGeneralSecurityContainer],
  28. );
  29. export default SecurityManagementWithUnstatedContainer;