From e25f5f6b3b23fd666a240a9a4b49d8e50fc2424d Mon Sep 17 00:00:00 2001 From: shivankkunwar <66783424+shivankkunwar@users.noreply.github.com> Date: Wed, 12 Mar 2025 11:58:43 +0530 Subject: [PATCH] fixed #10322 (#11225) --- .../GlobalDataSourcesPage/index.jsx | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/frontend/src/GlobalDatasources/GlobalDataSourcesPage/index.jsx b/frontend/src/GlobalDatasources/GlobalDataSourcesPage/index.jsx index 2c51608134..de5d5ca08f 100644 --- a/frontend/src/GlobalDatasources/GlobalDataSourcesPage/index.jsx +++ b/frontend/src/GlobalDatasources/GlobalDataSourcesPage/index.jsx @@ -27,7 +27,7 @@ export const GlobalDataSourcesPage = ({ darkMode = false, updateSelectedDatasour const [plugins, setPlugins] = useState([]); const [filteredDataSources, setFilteredDataSources] = useState([]); const [queryString, setQueryString] = useState(''); - const [addingDataSource, setAddingDataSource] = useState(false); + const [addingDataSource, setAddingDataSource] = useState(null); const [suggestingDataSource, setSuggestingDataSource] = useState(false); const { t } = useTranslation(); const navigate = useNavigate(); @@ -146,7 +146,7 @@ export const GlobalDataSourcesPage = ({ darkMode = false, updateSelectedDatasour const pluginId = id; const kind = selectedDataSource?.kind; const scope = 'global'; - + const dataSourceKey = `${kind}-${name}`.toLowerCase(); const parsedOptions = Object?.keys(options)?.map((key) => { const keyMeta = selectedDataSource.options[key]; return { @@ -157,7 +157,7 @@ export const GlobalDataSourcesPage = ({ darkMode = false, updateSelectedDatasour }; }); if (name.trim() !== '') { - setAddingDataSource(true); + setAddingDataSource(dataSourceKey); globalDatasourceService .create({ plugin_id: pluginId, @@ -168,16 +168,16 @@ export const GlobalDataSourcesPage = ({ darkMode = false, updateSelectedDatasour }) .then((data) => { setActiveDatasourceList(''); - setAddingDataSource(false); + setAddingDataSource(null); toast.success(t('editor.queryManager.dataSourceManager.toast.success.dataSourceAdded', 'Data Source Added'), { position: 'top-center', }); dataSourcesChanged(false, data); - setAddingDataSource(false); + setAddingDataSource(null); }) .catch(({ error }) => { - setAddingDataSource(false); + setAddingDataSource(null); error && toast.error(error, { position: 'top-center' }); }); } else { @@ -267,7 +267,11 @@ export const GlobalDataSourcesPage = ({ darkMode = false, updateSelectedDatasour ); }; - + const getDataSourceKey = (item) => { + const name = item.manifestFile?.data?.source?.kind ?? item.kind; + const kind = (item.manifestFile?.data?.source ?? item)?.kind; + return `${kind}-${name}`.toLowerCase(); + }; const renderCardGroup = (source, type) => { if (type === 'Plugins' && source.length === 0) { return ( @@ -297,10 +301,13 @@ export const GlobalDataSourcesPage = ({ darkMode = false, updateSelectedDatasour ); } - const addDataSourceBtn = (item) => ( - { + const dataSourceKey = getDataSourceKey(item); + return createDataSource(item)} data-cy={`${item.title.toLowerCase().replace(/\s+/g, '-')}-add-button`} @@ -308,7 +315,7 @@ export const GlobalDataSourcesPage = ({ darkMode = false, updateSelectedDatasour Add - ); + }; const datasources = source.map((datasource) => { const src = datasource?.iconFile?.data