|
|
@@ -13,13 +13,18 @@ const logger = loggerFactory('growi:SlackBotSettings');
|
|
|
|
|
|
const CustomBotWithProxySettings = (props) => {
|
|
|
const {
|
|
|
- appContainer, slackAppIntegrations, proxyServerUri, onClickAddSlackWorkspaceBtn,
|
|
|
+ appContainer, slackAppIntegrations, proxyServerUri, onClickAddSlackWorkspaceBtn, connectionStatuses,
|
|
|
} = props;
|
|
|
const [newProxyServerUri, setNewProxyServerUri] = useState();
|
|
|
const [integrationIdToDelete, setIntegrationIdToDelete] = useState(null);
|
|
|
// const [integrationIdToRegenerateTokens, setIntegrationIdToRegenerateTokens] = useState(null);
|
|
|
const { t } = useTranslation();
|
|
|
|
|
|
+ const workspaceNameObjects = Object.values(connectionStatuses);
|
|
|
+ const workspaceNames = workspaceNameObjects.map((w) => {
|
|
|
+ return w.workspaceName;
|
|
|
+ });
|
|
|
+
|
|
|
useEffect(() => {
|
|
|
if (proxyServerUri != null) {
|
|
|
setNewProxyServerUri(proxyServerUri);
|
|
|
@@ -104,7 +109,7 @@ const CustomBotWithProxySettings = (props) => {
|
|
|
|
|
|
<h2 className="admin-setting-header">{t('admin:slack_integration.integration_procedure')}</h2>
|
|
|
<div className="mx-3">
|
|
|
- {slackAppIntegrations.map((slackAppIntegration) => {
|
|
|
+ {slackAppIntegrations.map((slackAppIntegration, i) => {
|
|
|
const { tokenGtoP, tokenPtoG } = slackAppIntegration;
|
|
|
return (
|
|
|
<React.Fragment key={slackAppIntegration._id}>
|
|
|
@@ -118,6 +123,8 @@ const CustomBotWithProxySettings = (props) => {
|
|
|
{t('admin:slack_integration.delete')}
|
|
|
</button>
|
|
|
</div>
|
|
|
+ {proxyServerUri != null && workspaceNames[i] == null
|
|
|
+ && (<>Settings #{i + 1} <span className="text-danger">{t('admin:slack_integration.integration_failed')}</span></>)}
|
|
|
<WithProxyAccordions
|
|
|
botType="customBotWithProxy"
|
|
|
slackAppIntegrationId={slackAppIntegration._id}
|
|
|
@@ -161,6 +168,7 @@ CustomBotWithProxySettings.propTypes = {
|
|
|
proxyServerUri: PropTypes.string,
|
|
|
onClickAddSlackWorkspaceBtn: PropTypes.func,
|
|
|
fetchSlackIntegrationData: PropTypes.func,
|
|
|
+ connectionStatuses: PropTypes.object.isRequired,
|
|
|
};
|
|
|
|
|
|
export default CustomBotWithProxySettingsWrapper;
|