diff --git a/packages/core/src/renderer/components/+namespaces/__snapshots__/namespace-tree-view.test.tsx.snap b/packages/core/src/renderer/components/+namespaces/__snapshots__/namespace-tree-view.test.tsx.snap
index b24e40bf88..b00ce8268b 100644
--- a/packages/core/src/renderer/components/+namespaces/__snapshots__/namespace-tree-view.test.tsx.snap
+++ b/packages/core/src/renderer/components/+namespaces/__snapshots__/namespace-tree-view.test.tsx.snap
@@ -60,6 +60,7 @@ exports[` once the subscribe resolves renders namespace wit
>
@@ -90,6 +91,7 @@ exports[` once the subscribe resolves renders namespace wit
@@ -188,6 +190,7 @@ exports[` once the subscribe resolves renders namespace wit
>
@@ -213,11 +216,17 @@ exports[` once the subscribe resolves renders namespace wit
class="MuiTypography-root MuiTreeItem-label MuiTypography-body1"
>
service-1
+
+ S
+
diff --git a/packages/core/src/renderer/components/+namespaces/namespace-tree-view.test.tsx b/packages/core/src/renderer/components/+namespaces/namespace-tree-view.test.tsx
index 45db5905c6..2bbab9bde5 100644
--- a/packages/core/src/renderer/components/+namespaces/namespace-tree-view.test.tsx
+++ b/packages/core/src/renderer/components/+namespaces/namespace-tree-view.test.tsx
@@ -167,6 +167,19 @@ describe("", () => {
const result = render();
expect(result.baseElement).toMatchSnapshot();
- })
+ });
+
+ it("renders an indicator badge for the subnamespace", () => {
+ const result = render();
+
+ expect(result.getByTestId("subnamespace-badge-for-service-1-1")).toBeInTheDocument();
+ });
+
+ it("does not render an indicator badge for the true namespace", () => {
+ const result = render();
+ const trueNamespace = result.getByTestId("namespace-team-c-1");
+
+ expect(trueNamespace.querySelector("[data-testid='subnamespace-badge-for-team-c-1']")).toBeNull();
+ });
});
});
\ No newline at end of file
diff --git a/packages/core/src/renderer/components/+namespaces/namespace-tree-view.tsx b/packages/core/src/renderer/components/+namespaces/namespace-tree-view.tsx
index 103d05bb17..f95a5805dd 100644
--- a/packages/core/src/renderer/components/+namespaces/namespace-tree-view.tsx
+++ b/packages/core/src/renderer/components/+namespaces/namespace-tree-view.tsx
@@ -18,13 +18,31 @@ interface Dependencies {
function NonInjectableNamespaceTreeView({ root, namespaceStore }: Dependencies & NamespaceTreeViewProps) {
const hierarchicalNamespaces = namespaceStore.getByLabel(["hnc.x-k8s.io/included-namespace=true"]);
+ function renderBadge(namespace: Namespace) {
+ if (!namespace.getAnnotations().find(annotation => annotation.includes("hnc.x-k8s.io/subnamespace-of"))) {
+ return null;
+ }
+
+ return S;
+ }
+
function renderChildren(parent: Namespace) {
const children = hierarchicalNamespaces.filter(ns =>
ns.getLabels().find(label => label === `${parent.getName()}.tree.hnc.x-k8s.io/depth=1`)
);
return children.map(child => (
-
+
+ {child.getName()}
+ {renderBadge(child)}
+ >
+ )}
+ >
{renderChildren(child)}
));
@@ -43,7 +61,11 @@ function NonInjectableNamespaceTreeView({ root, namespaceStore }: Dependencies &
defaultExpandIcon={}
defaultEndIcon={}
>
-
+
{renderChildren(root)}