This is an automated email from the ASF dual-hosted git repository.

likyh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/main by this push:
     new ecec0c473 fix(config-ui): create blueprint (#3917)
ecec0c473 is described below

commit ecec0c4732438132f35720e695d4b19d7425991b
Author: 青湛 <[email protected]>
AuthorDate: Tue Dec 13 13:34:16 2022 +0800

    fix(config-ui): create blueprint (#3917)
    
    * fix(config-ui): one connection link failed will make all failed
    
    * fix(config-ui): miss depends step on create bp error
    
    * fix(config-ui): adjust the payload on create bp
    
    * fix(config-ui): adjust the style for plugin and create bp
---
 .../blueprint/create/hooks/use-blueprint-value.ts  |  7 +-
 config-ui/src/pages/blueprint/create/styled.ts     | 14 ++--
 .../src/plugins/common/transformation/styled.ts    |  4 +-
 config-ui/src/plugins/github/styled.ts             |  8 +--
 .../webook/components/create-dialog/styled.ts      |  2 +-
 .../components/view-or-edit-dialog/styled.ts       |  2 +-
 config-ui/src/store/connections/use-connections.ts | 84 ++++++++++++----------
 7 files changed, 65 insertions(+), 56 deletions(-)

diff --git a/config-ui/src/pages/blueprint/create/hooks/use-blueprint-value.ts 
b/config-ui/src/pages/blueprint/create/hooks/use-blueprint-value.ts
index 641bbb3e3..ad27b4f05 100644
--- a/config-ui/src/pages/blueprint/create/hooks/use-blueprint-value.ts
+++ b/config-ui/src/pages/blueprint/create/hooks/use-blueprint-value.ts
@@ -75,7 +75,7 @@ export const useBlueprintValue = ({ from, projectName }: 
Props) => {
       default:
         return ''
     }
-  }, [name, mode, rawPlan, connections])
+  }, [name, mode, rawPlan, connections, step])
 
   const payload = useMemo(() => {
     const params: any = {
@@ -94,7 +94,10 @@ export const useBlueprintValue = ({ from, projectName }: 
Props) => {
         connections: connections.map((cs) => ({
           plugin: cs.plugin,
           connectionId: cs.id,
-          scope: cs.scope
+          scopes: cs.scope.map((sc) => ({
+            ...sc,
+            id: `${sc.id}`
+          }))
         }))
       }
     }
diff --git a/config-ui/src/pages/blueprint/create/styled.ts 
b/config-ui/src/pages/blueprint/create/styled.ts
index 23dddf376..07595e0fb 100644
--- a/config-ui/src/pages/blueprint/create/styled.ts
+++ b/config-ui/src/pages/blueprint/create/styled.ts
@@ -59,32 +59,32 @@ export const Card = styled.div`
     font-weight: 600;
   }
 
-  .bp3-input-group > input {
+  .bp4-input-group > input {
     font-size: 12px;
   }
 
-  .bp3-tag-input-values > input {
+  .bp4-tag-input-values > input {
     font-size: 12px;
   }
 
-  textarea.bp3-input {
+  textarea.bp4-input {
     min-height: 240px;
     font-family: 'JetBrains Mono', monospace;
     font-size: 10px;
     background-color: #f9f9f9;
   }
 
-  .bp3-button-group {
+  .bp4-button-group {
     display: block;
     margin-top: 8px;
     text-align: right;
 
-    .bp3-button + .bp3-button {
+    .bp4-button + .bp4-button {
       margin-left: 4px;
     }
   }
 
-  .bp3-button.bp3-small {
+  .bp4-button.bp4-small {
     font-size: 12px;
   }
 
@@ -95,7 +95,7 @@ export const Card = styled.div`
     color: #7497f7;
     cursor: pointer;
 
-    span.bp3-icon {
+    span.bp4-icon {
       margin-right: 4px;
       cursor: pointer;
     }
diff --git a/config-ui/src/plugins/common/transformation/styled.ts 
b/config-ui/src/plugins/common/transformation/styled.ts
index de7dd4d8a..a6acb1f85 100644
--- a/config-ui/src/plugins/common/transformation/styled.ts
+++ b/config-ui/src/plugins/common/transformation/styled.ts
@@ -28,12 +28,12 @@ export const Container = styled.div`
     0px 1.6px 8px rgba(0, 0, 0, 0.07);
   border-radius: 8px;
 
-  & > .bp3-button-group {
+  & > .bp4-button-group {
     display: block;
     margin-top: 16px;
     text-align: right;
 
-    .bp3-button + .bp3-button {
+    .bp4-button + .bp4-button {
       margin-left: 4px;
     }
   }
diff --git a/config-ui/src/plugins/github/styled.ts 
b/config-ui/src/plugins/github/styled.ts
index 26900abe2..35fc9640e 100644
--- a/config-ui/src/plugins/github/styled.ts
+++ b/config-ui/src/plugins/github/styled.ts
@@ -22,20 +22,20 @@ export const TransformationWrapper = styled.div`
   h3 {
     margin: 0 0 8px;
 
-    .bp3-tag {
+    .bp4-tag {
       margin-left: 6px;
     }
   }
 
-  .bp3-form-group {
+  .bp4-form-group {
     display: flex;
     align-items: center;
 
-    .bp3-label {
+    .bp4-label {
       flex: 0 0 150px;
     }
 
-    .bp3-form-content {
+    .bp4-form-content {
       flex: auto;
     }
   }
diff --git a/config-ui/src/plugins/webook/components/create-dialog/styled.ts 
b/config-ui/src/plugins/webook/components/create-dialog/styled.ts
index 99d20448d..347b93853 100644
--- a/config-ui/src/plugins/webook/components/create-dialog/styled.ts
+++ b/config-ui/src/plugins/webook/components/create-dialog/styled.ts
@@ -30,7 +30,7 @@ export const Wrapper = styled.div`
     font-weight: 600;
     color: ${Colors.GREEN5};
 
-    .bp3-icon {
+    .bp4-icon {
       margin-right: 8px;
     }
   }
diff --git 
a/config-ui/src/plugins/webook/components/view-or-edit-dialog/styled.ts 
b/config-ui/src/plugins/webook/components/view-or-edit-dialog/styled.ts
index 661a33f23..0c5fb5b9c 100644
--- a/config-ui/src/plugins/webook/components/view-or-edit-dialog/styled.ts
+++ b/config-ui/src/plugins/webook/components/view-or-edit-dialog/styled.ts
@@ -29,7 +29,7 @@ export const Wrapper = styled.div`
     font-weight: 600;
     color: ${Colors.GREEN5};
 
-    .bp3-icon {
+    .bp4-icon {
       margin-right: 8px;
     }
   }
diff --git a/config-ui/src/store/connections/use-connections.ts 
b/config-ui/src/store/connections/use-connections.ts
index dad82d490..122dd26a4 100644
--- a/config-ui/src/store/connections/use-connections.ts
+++ b/config-ui/src/store/connections/use-connections.ts
@@ -22,7 +22,7 @@ import { Plugins } from '@/registry'
 
 import type { ConnectionItemType } from './types'
 import { ConnectionStatusEnum } from './types'
-import { getConnection, testConnection } from './api'
+import * as API from './api'
 
 export const useConnections = (plugin?: string | string[]) => {
   const [loading, setLoading] = useState(false)
@@ -37,46 +37,52 @@ export const useConnections = (plugin?: string | string[]) 
=> {
     [plugin]
   )
 
-  const handleRefresh = useCallback(async () => {
-    setLoading(true)
-
+  const getConnection = async (plugin: string) => {
     try {
-      const res = await Promise.all(
-        allConnections.map((cs) => getConnection(cs.id))
-      )
+      return await API.getConnection(plugin)
+    } catch {
+      return []
+    }
+  }
 
-      const resWithPlugin = res.map((cs, i) =>
-        cs.map((it: any) => {
-          const { id, icon, availableDataDomains } = allConnections[i] as any
-
-          return {
-            ...it,
-            plugin: id,
-            icon: `/${icon}`,
-            entities: availableDataDomains
-          }
-        })
-      )
+  const handleRefresh = useCallback(async () => {
+    setLoading(true)
 
-      setConnections(
-        resWithPlugin.flat().map((it) => ({
-          unique: `${it.plugin}-${it.id}`,
-          status: ConnectionStatusEnum.NULL,
-          plugin: it.plugin,
-          id: it.id,
-          name: it.name,
-          icon: it.icon,
-          entities: it.entities,
-          endpoint: it.endpoint,
-          proxy: it.proxy,
-          token: it.token,
-          username: it.username,
-          password: it.password
-        }))
-      )
-    } finally {
-      setLoading(false)
-    }
+    const res = await Promise.all(
+      allConnections.map((cs) => getConnection(cs.id))
+    )
+
+    const resWithPlugin = res.map((cs, i) =>
+      cs.map((it: any) => {
+        const { id, icon, availableDataDomains } = allConnections[i] as any
+
+        return {
+          ...it,
+          plugin: id,
+          icon: `/${icon}`,
+          entities: availableDataDomains
+        }
+      })
+    )
+
+    setConnections(
+      resWithPlugin.flat().map((it) => ({
+        unique: `${it.plugin}-${it.id}`,
+        status: ConnectionStatusEnum.NULL,
+        plugin: it.plugin,
+        id: it.id,
+        name: it.name,
+        icon: it.icon,
+        entities: it.entities,
+        endpoint: it.endpoint,
+        proxy: it.proxy,
+        token: it.token,
+        username: it.username,
+        password: it.password
+      }))
+    )
+
+    setLoading(false)
   }, [allConnections])
 
   useEffect(() => {
@@ -114,7 +120,7 @@ export const useConnections = (plugin?: string | string[]) 
=> {
             let status
 
             try {
-              const res = await testConnection(plugin, {
+              const res = await API.testConnection(plugin, {
                 endpoint,
                 proxy,
                 token,

Reply via email to