import React, { useState, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import PropTypes from 'prop-types'; import AdminUpdateButtonRow from '../Common/AdminUpdateButtonRow'; import AppContainer from '~/client/services/AppContainer'; import { withUnstatedContainers } from '../../UnstatedUtils'; import { toastSuccess, toastError } from '~/client/util/apiNotification'; const CustomBotWithoutProxySecretTokenSection = (props) => { const { appContainer, slackSigningSecret, slackBotToken, slackSigningSecretEnv, slackBotTokenEnv, onUpdatedSecretToken, } = props; const { t } = useTranslation(); const [inputSigningSecret, setInputSigningSecret] = useState(slackSigningSecret || ''); const [inputBotToken, setInputBotToken] = useState(slackBotToken || ''); // update states when props are updated useEffect(() => { setInputSigningSecret(slackSigningSecret || ''); }, [slackSigningSecret]); useEffect(() => { setInputBotToken(slackBotToken || ''); }, [slackBotToken]); const updatedSecretToken = async() => { try { await appContainer.apiv3.put('/slack-integration-settings/without-proxy/update-settings', { slackSigningSecret: inputSigningSecret, slackBotToken: inputBotToken, }); if (onUpdatedSecretToken != null) { onUpdatedSecretToken(inputSigningSecret, inputBotToken); } toastSuccess(t('toaster.update_successed', { target: t('admin:slack_integration.custom_bot_without_proxy_settings') })); } catch (err) { toastError(err); } }; return (
Database
setInputSigningSecret(e.target.value)} />Environment variables
{/* eslint-disable-next-line max-len, react/no-danger */}
Database
setInputBotToken(e.target.value)} />Environment variables
{/* eslint-disable-next-line react/no-danger */}