ApiSettings.tsx 947 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import React from 'react';
  2. import { useTranslation } from 'next-i18next';
  3. import { useCurrentUser } from '~/states/global';
  4. import { AccessTokenSettings } from './AccessTokenSettings';
  5. import { ApiTokenSettings } from './ApiTokenSettings';
  6. const ApiSettings = React.memo((): JSX.Element => {
  7. const { t } = useTranslation();
  8. const currentUser = useCurrentUser();
  9. const shouldHideAccessTokenSettings = currentUser == null || !currentUser?.readOnly;
  10. return (
  11. <>
  12. <div className="mt-4">
  13. <h2 className="border-bottom pb-2 my-4 fs-4">{ t('API Token Settings') }</h2>
  14. <ApiTokenSettings />
  15. </div>
  16. {shouldHideAccessTokenSettings && (
  17. <div className="mt-4">
  18. <h2 className="border-bottom pb-2 my-4 fs-4">{ t('Access Token Settings') }</h2>
  19. <AccessTokenSettings />
  20. </div>
  21. )}
  22. </>
  23. );
  24. });
  25. ApiSettings.displayName = 'ApiSettings';
  26. export default ApiSettings;