diff --git a/src/components/Extensibility/contexts/DataSources.tsx b/src/components/Extensibility/contexts/DataSources.tsx index d03f318091..2ed561b6cf 100644 --- a/src/components/Extensibility/contexts/DataSources.tsx +++ b/src/components/Extensibility/contexts/DataSources.tsx @@ -136,7 +136,10 @@ export const DataSourcesContextProvider: FC = ({ } const apiGroup = group ? `apis/${group}` : 'api'; - let url = `/${apiGroup}/${version}${namespacePart}/${resourceType}`; + let url = + namespace === '-all-' + ? `/${apiGroup}/${version}/${resourceType}` + : `/${apiGroup}/${version}${namespacePart}/${resourceType}`; if (labelSelector) { url += labelSelector; } else if (name) { diff --git a/src/sidebar/CategoryItem.tsx b/src/sidebar/CategoryItem.tsx index 01db908b6f..67657940ad 100644 --- a/src/sidebar/CategoryItem.tsx +++ b/src/sidebar/CategoryItem.tsx @@ -7,7 +7,11 @@ import { isSidebarCondensedState } from 'state/preferences/isSidebarCondensedAto import { ExpandedCategories } from 'state/navigation/expandedCategories/expandedCategoriesAtom'; import { NavItem } from './NavItem'; -import { DataSourcesContextProvider } from 'components/Extensibility/contexts/DataSources'; +import { + DataSources, + DataSourcesContextProvider, +} from 'components/Extensibility/contexts/DataSources'; +import { cloneDeep } from 'lodash'; type CategoryItemProps = { category: Category; @@ -30,6 +34,7 @@ export function CategoryItem({ if (!isSidebarCondensed) { if (categoryName === e.target.parentElement?.getAttribute('text')) { + return; } else if (expanded) { handleExpandedCategories( expandedCategories.filter(el => el !== category.key), @@ -40,10 +45,26 @@ export function CategoryItem({ } }; + const handleEmptyNamespace = (dataSources: DataSources) => { + // Some data is available only on a certain namespace. If we don't have a given namespace, we can still get it on all namespaces. + let clonedDataSources = cloneDeep(dataSources); + Object.keys(clonedDataSources).forEach(key => { + if (clonedDataSources?.[key]?.resource) { + clonedDataSources[key].resource = { + ...clonedDataSources[key]?.resource, + namespace: clonedDataSources[key]?.resource?.namespace ?? '-all-', + }; + } + }); + return clonedDataSources; + }; + const children = category.items?.map((nn, index) => ( - + {nn.dataSources ? ( - + ) : (