You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by mi...@apache.org on 2023/12/07 03:59:24 UTC

(incubator-devlake) 01/01: fix(config-ui): new and old components are incompatible

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

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

commit 39a1e190f8f1fcaea372e820c3afd594e095d9b2
Author: mintsweet <0x...@gmail.com>
AuthorDate: Thu Dec 7 11:59:09 2023 +0800

    fix(config-ui): new and old components are incompatible
---
 .../components/add-connection-dialog/index.tsx     | 57 ++++++++++++----------
 1 file changed, 31 insertions(+), 26 deletions(-)

diff --git a/config-ui/src/pages/blueprint/detail/components/add-connection-dialog/index.tsx b/config-ui/src/pages/blueprint/detail/components/add-connection-dialog/index.tsx
index d82985b0f..98e1a01c0 100644
--- a/config-ui/src/pages/blueprint/detail/components/add-connection-dialog/index.tsx
+++ b/config-ui/src/pages/blueprint/detail/components/add-connection-dialog/index.tsx
@@ -17,11 +17,9 @@
  */
 
 import { useState, useMemo } from 'react';
-import { Modal } from 'antd';
-import { Button, Intent } from '@blueprintjs/core';
+import { Modal, Form, Select, Space, Button } from 'antd';
 
 import { useAppSelector } from '@/app/hook';
-import { FormItem, Selector, Buttons } from '@/components';
 import { selectAllConnections } from '@/features';
 import { DataScopeSelect } from '@/plugins';
 import { IConnection } from '@/types';
@@ -34,13 +32,24 @@ interface Props {
 
 export const AddConnectionDialog = ({ disabled = [], onCancel, onSubmit }: Props) => {
   const [step, setStep] = useState(1);
-  const [selectedConnection, setSelectedConnection] = useState<IConnection>();
+  const [selectedValue, setSelectedValue] = useState<string>();
 
   const connections = useAppSelector(selectAllConnections);
 
-  const disabledItems = useMemo(
-    () => connections.filter((cs) => (disabled.length ? disabled.includes(cs.unique) : false)),
-    [disabled],
+  const options = useMemo(
+    () =>
+      connections
+        .filter((cs) => (disabled.length ? !disabled.includes(cs.unique) : true))
+        .map((cs) => ({
+          label: cs.name,
+          value: cs.unique,
+        })),
+    [connections, disabled],
+  );
+
+  const selectedConnection = useMemo(
+    () => connections.find((cs) => cs.unique === selectedValue) as IConnection,
+    [selectedValue],
   );
 
   const handleSubmit = (scopeIds: any) => {
@@ -55,25 +64,21 @@ export const AddConnectionDialog = ({ disabled = [], onCancel, onSubmit }: Props
   return (
     <Modal open width={820} centered title={`Add a Connection - Step ${step}`} footer={null} onCancel={onCancel}>
       {step === 1 && (
-        <FormItem
-          label="Data Connections"
-          subLabel="Select from existing Data Connections. If you have not created any Data Connections yet, please create and manage Connections first."
-          required
-        >
-          <Selector
-            items={connections}
-            disabledItems={disabledItems}
-            getKey={(it) => it.unique}
-            getName={(it) => it.name}
-            // getIcon={(it) => it.icon}
-            selectedItem={selectedConnection}
-            onChangeItem={(selectedItem) => setSelectedConnection(selectedItem)}
-          />
-          <Buttons position="bottom" align="right">
-            <Button outlined intent={Intent.PRIMARY} text="Cancel" onClick={onCancel} />
-            <Button disabled={!selectedConnection} intent={Intent.PRIMARY} text="Next" onClick={() => setStep(2)} />
-          </Buttons>
-        </FormItem>
+        <Form layout="vertical">
+          <Form.Item
+            label="Data Connections"
+            tooltip="Select from existing Data Connections. If you have not created any Data Connections yet, please create and manage Connections first."
+            required
+          >
+            <Select placeholder="Select..." options={options} onChange={(value) => setSelectedValue(value)} />
+          </Form.Item>
+          <Space style={{ display: 'flex', justifyContent: 'flex-end' }}>
+            <Button onClick={onCancel}>Cancel</Button>
+            <Button type="primary" disabled={!selectedConnection} onClick={() => setStep(2)}>
+              Next
+            </Button>
+          </Space>
+        </Form>
       )}
       {step === 2 && selectedConnection && (
         <DataScopeSelect