import React, { useState, useEffect, useCallback, } from 'react'; import PropTypes from 'prop-types'; import loggerFactory from '@alias/logger'; import { useTranslation } from 'react-i18next'; import AppContainer from '../../../services/AppContainer'; import { withUnstatedContainers } from '../../UnstatedUtils'; import { toastSuccess, toastError } from '../../../util/apiNotification'; import CustomBotWithProxyIntegrationCard from './CustomBotWithProxyIntegrationCard'; import WithProxyAccordions from './WithProxyAccordions'; const logger = loggerFactory('growi:SlackBotSettings'); const OfficialBotSettings = (props) => { const { appContainer } = props; const { t } = useTranslation(); const [proxyUri, setProxyUri] = useState(null); const retrieveProxyUri = useCallback(async() => { try { const res = await appContainer.apiv3.get('/slack-integration-settings'); const { proxyUri } = res.data.settings; setProxyUri(proxyUri); } catch (err) { toastError(err); logger.error(err); } }, [appContainer.apiv3]); useEffect(() => { retrieveProxyUri(); }, [retrieveProxyUri]); const updateProxyUri = async() => { try { await appContainer.apiv3.put('/slack-integration-settings/proxy-uri', { proxyUri, }); toastSuccess(t('toaster.update_successed', { target: t('Proxy URL') })); } catch (err) { toastError(err); logger.error(err); } }; return ( <>

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

{/* TODO delete tmp props */}
{ setProxyUri(e.target.value) }} />

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

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