Steven Fukase 4 лет назад
Родитель
Сommit
d507e31c55

+ 25 - 3
src/client/js/components/Admin/SlackIntegration/CustomBotWithProxySettings.jsx

@@ -14,12 +14,13 @@ import DeleteSlackBotSettingsModal from './DeleteSlackBotSettingsModal';
 const logger = loggerFactory('growi:SlackBotSettings');
 
 const CustomBotWithProxySettings = (props) => {
-  // eslint-disable-next-line no-unused-vars
   const { appContainer } = props;
   const [isDeleteConfirmModalShown, setIsDeleteConfirmModalShown] = useState(false);
   const [proxyUri, setProxyUri] = useState(null);
-
   const { t } = useTranslation();
+  // TODO: Multiple accordion logic
+  const [tokenPtoG, setTokenPtoG] = useState('');
+  const [tokenGtoP, setTokenGtoP] = useState('');
 
   const retrieveProxyUri = useCallback(async() => {
     try {
@@ -52,6 +53,19 @@ const CustomBotWithProxySettings = (props) => {
     );
   };
 
+  const discardTokenHandler = async() => {
+    const response = await appContainer.apiv3.delete('/slack-integration-settings/slack-app-integration',
+      { tokenGtoP, tokenPtoG });
+    console.log('asdfasdf');
+  };
+
+  const generateTokenHandler = async() => {
+    const response = await appContainer.apiv3.put('/slack-integration-settings/access-tokens');
+    console.log(response);
+    setTokenGtoP('setAccessTokenForProxy');
+    setTokenPtoG('tokenForProxy');
+  };
+
   const deleteSlackSettingsHandler = async() => {
     try {
       // TODO imple delete PtoG and GtoP Token at GW 5861
@@ -132,7 +146,15 @@ const CustomBotWithProxySettings = (props) => {
                 {t('admin:slack_integration.delete')}
               </button>
             </div>
-            <WithProxyAccordions botType="customBotWithProxy" key={i} />
+            <WithProxyAccordions
+              botType="customBotWithProxy"
+              discardTokenHandler={discardTokenHandler}
+              generateTokenHandler={generateTokenHandler}
+              // TODO: Multiple accordion logic
+              tokenPtoG={tokenPtoG}
+              tokenGtoP={tokenGtoP}
+              key={i}
+            />
           </>
         ))}
 

+ 20 - 24
src/client/js/components/Admin/SlackIntegration/CustomBotWithProxySettingsAccordion.jsx

@@ -1,34 +1,30 @@
 import React, { useState } from 'react';
 import PropTypes from 'prop-types';
 import { useTranslation } from 'react-i18next';
-import AppContainer from '../../../services/AppContainer';
-import { withUnstatedContainers } from '../../UnstatedUtils';
 
 import Accordion from '../Common/Accordion';
 
-const CustomBotWithProxySettingsAccordion = ({ appContainer }) => {
+const CustomBotWithProxySettingsAccordion = (props) => {
   const [testChannel, setTestChannel] = useState('');
-  /* eslint-disable no-unused-vars */
   // TODO: Add connection Logs
+  // eslint-disable no-unused-vars
   const [connectionErrorCode, setConnectionErrorCode] = useState(null);
   const [connectionErrorMessage, setConnectionErrorMessage] = useState(null);
   const [connectionSuccessMessage, setConnectionSuccessMessage] = useState(null);
-  const [accessTokenForGROWI, setAccessTokenForGROWI] = useState('');
-  const [accessTokenForProxy, setAccessTokenForProxy] = useState('');
+  const { t } = useTranslation();
 
-  const discardTokenHandler = () => {
-    setAccessTokenForGROWI('');
-    setAccessTokenForProxy('');
-  };
+  const discardTokenHandler = props.discardTokenHandler;
+  const generateTokenHandler = props.generateTokenHandler;
 
-  const generateTokenHandler = async() => {
-    const response = await appContainer.apiv3.put('/slack-integration-settings/access-tokens');
-    console.log(response);
-    setAccessTokenForGROWI('setAccessTokenForProxy');
-    setAccessTokenForProxy('tokenForProxy');
-  };
+  let tokenGtoP;
+  if (props.tokenGtoP != null) {
+    tokenGtoP = props.tokenGtoP;
+  }
 
-  const { t } = useTranslation();
+  let tokenPtoG;
+  if (props.tokenPtoG != null) {
+    tokenPtoG = props.tokenPtoG;
+  }
 
   // TODO: Handle test button
   const submitForm = (e) => {
@@ -109,7 +105,7 @@ const CustomBotWithProxySettingsAccordion = ({ appContainer }) => {
               <input
                 className="form-control"
                 type="text"
-                value={accessTokenForGROWI}
+                value={tokenGtoP}
                 readOnly
               />
             </div>
@@ -120,7 +116,7 @@ const CustomBotWithProxySettingsAccordion = ({ appContainer }) => {
               <input
                 className="form-control"
                 type="text"
-                value={accessTokenForProxy}
+                value={tokenPtoG}
                 readOnly
               />
             </div>
@@ -241,11 +237,11 @@ const CustomBotWithProxySettingsAccordion = ({ appContainer }) => {
   );
 };
 
-
-const CustomBotWithProxySettingsAccordionWrapper = withUnstatedContainers(CustomBotWithProxySettingsAccordion, [AppContainer]);
-
 CustomBotWithProxySettingsAccordion.propTypes = {
-  appContainer: PropTypes.instanceOf(AppContainer).isRequired,
+  discardTokenHandler: PropTypes.func.isRequired,
+  generateTokenHandler: PropTypes.func.isRequired,
+  tokenPtoG: PropTypes.string,
+  tokenGtoP: PropTypes.string,
 };
 
-export default CustomBotWithProxySettingsAccordionWrapper;
+export default CustomBotWithProxySettingsAccordion;