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

juzhiyuan pushed a commit to branch v2.3-sync
in repository https://gitbox.apache.org/repos/asf/apisix-dashboard.git

commit fb017217ee1b2def60b116cdcab84a07a460b151
Author: litesun <su...@apache.org>
AuthorDate: Wed Jan 6 14:17:55 2021 +0800

    feat: add tips when plugin type is auth and schemaType is not consumer 
(#1219)
    
    Co-authored-by: 琚致远 <juzhiy...@apache.org>
---
 web/src/components/Plugin/PluginDetail.tsx | 17 +++++++++++------
 web/src/components/Plugin/PluginPage.tsx   |  1 +
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/web/src/components/Plugin/PluginDetail.tsx 
b/web/src/components/Plugin/PluginDetail.tsx
index 2ff336c..b154985 100644
--- a/web/src/components/Plugin/PluginDetail.tsx
+++ b/web/src/components/Plugin/PluginDetail.tsx
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 import React, { useEffect, useRef } from 'react';
-import { Button, notification, PageHeader, Switch, Form, Select, Divider, 
Drawer } from 'antd';
+import { Button, notification, PageHeader, Switch, Form, Select, Divider, 
Drawer, Alert } from 'antd';
 import { useIntl } from 'umi';
 import CodeMirror from '@uiw/react-codemirror';
 import { js_beautify } from 'js-beautify';
@@ -29,6 +29,7 @@ type Props = {
   type?: 'global' | 'scoped';
   schemaType: PluginComponent.Schema;
   initialData: object;
+  pluginList: PluginComponent.Meta[],
   readonly?: boolean;
   visible: boolean;
   onClose?: () => void;
@@ -65,15 +66,17 @@ const PluginDetail: React.FC<Props> = ({
   type = 'scoped',
   schemaType = 'route',
   visible,
+  pluginList = [],
   readonly = false,
   initialData = {},
-  onClose = () => {},
-  onChange = () => {},
+  onClose = () => { },
+  onChange = () => { },
 }) => {
   const { formatMessage } = useIntl();
   const [form] = Form.useForm();
   const ref = useRef<any>(null);
-  const data = initialData[name];
+  const data = initialData[name] || {};
+  const pluginType = pluginList.find(item => item.name === name)?.type
 
   useEffect(() => {
     form.setFieldsValue({ disable: initialData[name] && 
!initialData[name].disable });
@@ -149,7 +152,7 @@ const PluginDetail: React.FC<Props> = ({
         placement="right"
         closable={false}
         onClose={onClose}
-        width={600}
+        width={700}
         footer={
           <div style={{ display: 'flex', justifyContent: 'space-between' }}>
             {' '}
@@ -204,7 +207,9 @@ const PluginDetail: React.FC<Props> = ({
         <Divider orientation="left">Data Editor</Divider>
         <PageHeader
           title=""
-          subTitle={`Current Plugin: ${name}`}
+          subTitle={
+            (pluginType === 'auth' && schemaType !== 'consumer') ? <Alert 
message={`${name} does not require configuration`} type="warning" />
+              : <>Current plugin: {name}</>}
           ghost={false}
           extra={[
             <Button
diff --git a/web/src/components/Plugin/PluginPage.tsx 
b/web/src/components/Plugin/PluginPage.tsx
index cde2897..f6d45a4 100644
--- a/web/src/components/Plugin/PluginPage.tsx
+++ b/web/src/components/Plugin/PluginPage.tsx
@@ -140,6 +140,7 @@ const PluginPage: React.FC<Props> = ({
         visible={name !== NEVER_EXIST_PLUGIN_FLAG}
         schemaType={schemaType}
         initialData={initialData}
+        pluginList={pluginList}
         onClose={() => {
           setName(NEVER_EXIST_PLUGIN_FLAG);
         }}

Reply via email to