From c8b0ebb03e229199cb0d4ca5f2fca4f61f1126c6 Mon Sep 17 00:00:00 2001 From: Katherine Date: Fri, 2 Aug 2024 21:26:45 +0800 Subject: [PATCH] refactor: filter FilterTargetKeys options based on titleUsable (#4981) --- .../Configuration/ConfigurationTable.tsx | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/MainDataSourceManager/Configuration/ConfigurationTable.tsx b/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/MainDataSourceManager/Configuration/ConfigurationTable.tsx index 3a78e86478..8962ff09aa 100644 --- a/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/MainDataSourceManager/Configuration/ConfigurationTable.tsx +++ b/packages/plugins/@nocobase/plugin-data-source-manager/src/client/component/MainDataSourceManager/Configuration/ConfigurationTable.tsx @@ -17,6 +17,7 @@ import { useAPIClient, useCurrentAppInfo, useRecord, + useApp, SchemaComponent, SchemaComponentContext, useCompile, @@ -112,6 +113,7 @@ export const ConfigurationTable = () => { const resource = api.resource('dbViews'); const compile = useCompile(); const form = useForm(); + const app = useApp(); /** * @@ -169,12 +171,25 @@ export const ConfigurationTable = () => { return Promise.resolve({ data: fields, }).then(({ data }) => { - return data?.map((item: any) => { - return { - label: compile(item.uiSchema?.title) || item.name, - value: item.name, - }; - }); + return data + .filter((field) => { + if (!field.interface) { + return false; + } + const interfaceOptions = app.dataSourceManager.collectionFieldInterfaceManager.getFieldInterface( + field.interface, + ); + if (interfaceOptions.titleUsable) { + return true; + } + return false; + }) + ?.map((item: any) => { + return { + label: compile(item.uiSchema?.title) || item.name, + value: item.name, + }; + }); }); };