CustomBotWithoutProxySettings.jsx 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import React, { useState, useEffect } from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import PropTypes from 'prop-types';
  4. import AppContainer from '../../../services/AppContainer';
  5. import AdminAppContainer from '../../../services/AdminAppContainer';
  6. import { withUnstatedContainers } from '../../UnstatedUtils';
  7. import CustomBotWithoutProxySettingsAccordion, { botInstallationStep } from './CustomBotWithoutProxySettingsAccordion';
  8. import CustomBotWithoutProxyIntegrationCard from './CustomBotWithoutProxyIntegrationCard';
  9. const CustomBotWithoutProxySettings = (props) => {
  10. const { appContainer } = props;
  11. const { t } = useTranslation();
  12. const [siteName, setSiteName] = useState('');
  13. useEffect(() => {
  14. const siteName = appContainer.config.crowi.title;
  15. setSiteName(siteName);
  16. }, [appContainer]);
  17. return (
  18. <>
  19. <h2 className="admin-setting-header">{t('admin:slack_integration.custom_bot_without_proxy_integration')}</h2>
  20. <CustomBotWithoutProxyIntegrationCard
  21. siteName={siteName}
  22. slackWSNameInWithoutProxy={props.slackWSNameInWithoutProxy}
  23. isSlackScopeSet={props.isSlackScopeSet}
  24. />
  25. <h2 className="admin-setting-header">{t('admin:slack_integration.custom_bot_without_proxy_settings')}</h2>
  26. <div className="my-5 mx-3">
  27. <CustomBotWithoutProxySettingsAccordion
  28. {...props}
  29. activeStep={botInstallationStep.CREATE_BOT}
  30. />
  31. </div>
  32. </>
  33. );
  34. };
  35. const CustomBotWithoutProxySettingsWrapper = withUnstatedContainers(CustomBotWithoutProxySettings, [AppContainer, AdminAppContainer]);
  36. CustomBotWithoutProxySettings.propTypes = {
  37. appContainer: PropTypes.instanceOf(AppContainer).isRequired,
  38. adminAppContainer: PropTypes.instanceOf(AdminAppContainer).isRequired,
  39. slackSigningSecret: PropTypes.string,
  40. slackSigningSecretEnv: PropTypes.string,
  41. slackBotToken: PropTypes.string,
  42. slackBotTokenEnv: PropTypes.string,
  43. isRgisterSlackCredentials: PropTypes.bool,
  44. isConnectedToSlack: PropTypes.bool,
  45. isSlackScopeSet: PropTypes.bool,
  46. slackWSNameInWithoutProxy: PropTypes.string,
  47. };
  48. export default CustomBotWithoutProxySettingsWrapper;