import React, { useState, useEffect, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; import PropTypes from 'prop-types'; import AppContainer from '../../../services/AppContainer'; import { withUnstatedContainers } from '../../UnstatedUtils'; import { toastSuccess, toastError } from '../../../util/apiNotification'; import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow'; const CustomBotWithoutProxySettings = (props) => { const { appContainer } = props; const { t } = useTranslation(); const [slackSigningSecret, setSlackSigningSecret] = useState(''); const [slackBotToken, setSlackBotToken] = useState(''); const [slackSigningSecretEnv, setSlackSigningSecretEnv] = useState(''); const [slackBotTokenEnv, setSlackBotTokenEnv] = useState(''); const botType = 'custom-bot-without-proxy'; const fetchData = useCallback(async() => { try { const res = await appContainer.apiv3.get('/slack-integration/'); const { slackSigningSecret, slackBotToken, slackSigningSecretEnvVars, slackBotTokenEnvVars, } = res.data.slackBotSettingParams.customBotWithoutProxySettings; setSlackSigningSecret(slackSigningSecret); setSlackBotToken(slackBotToken); setSlackSigningSecretEnv(slackSigningSecretEnvVars); setSlackBotTokenEnv(slackBotTokenEnvVars); } catch (err) { toastError(err); } }, [appContainer]); useEffect(() => { fetchData(); }, [fetchData]); async function updateHandler() { try { await appContainer.apiv3.put('/slack-integration/custom-bot-without-proxy', { slackSigningSecret, slackBotToken, botType, }); toastSuccess(t('toaster.update_successed', { target: t('admin:slack_integration.custom_bot_without_proxy_settings') })); } catch (err) { toastError(err); } } return ( <>

{t('admin:slack_integration.custom_bot_without_proxy_settings')}

DatabaseEnvironment variables
Signing Secret setSlackSigningSecret(e.target.value)} />

Bot User OAuth Token setSlackBotToken(e.target.value)} />

); }; const CustomBotWithoutProxySettingsWrapper = withUnstatedContainers(CustomBotWithoutProxySettings, [AppContainer]); CustomBotWithoutProxySettings.propTypes = { appContainer: PropTypes.instanceOf(AppContainer).isRequired, }; export default CustomBotWithoutProxySettingsWrapper;