diff --git a/src/renderer/components/+preferences/preferences-navigation/__tests__/preferences-navigation.test.tsx b/src/renderer/components/+preferences/preferences-navigation/__tests__/preferences-navigation.test.tsx index bfa370f192..a009323b60 100644 --- a/src/renderer/components/+preferences/preferences-navigation/__tests__/preferences-navigation.test.tsx +++ b/src/renderer/components/+preferences/preferences-navigation/__tests__/preferences-navigation.test.tsx @@ -14,7 +14,6 @@ import preferenceNavigationItemsInjectable from "../preference-navigation-items. import { computed } from "mobx"; import { noop } from "../../../../utils"; import type { IComputedValue } from "mobx/dist/internal"; -import { screen } from "@testing-library/dom"; describe("", () => { let di: DiContainer; @@ -50,14 +49,6 @@ describe("", () => { navigate: () => noop, orderNumber: 1, }, - { - id: "kube", - label: "Kube", - isActive: computed(() => false), - isVisible: computed(() => false), - navigate: () => noop, - orderNumber: 2, - }, ]); di.override(preferenceNavigationItemsInjectable, () => generalNavItems); @@ -79,16 +70,6 @@ describe("", () => { expect(container).not.toHaveTextContent("Custom Settings"); }); - - it("does not render hidden navigation items", () => { - const { container } = render( - , - ); - - screen.debug(); - - expect(container).not.toHaveTextContent("Kube"); - }); }); describe("when general + extension navigation items passed", () => { @@ -169,14 +150,13 @@ describe("", () => { expect(container).toHaveTextContent("lensapp-pod-menu"); }); - it("does not render hidden extension navigation items", () => { - const { container } = render( + it("renders extension navigation items inside custom settings block", () => { + const { getByTestId } = render( , ); + const settingsBlock = getByTestId("extension-settings"); - screen.debug(); - - expect(container).not.toHaveTextContent("metrics-plugin"); + expect(settingsBlock).toHaveTextContent("lensapp-node-menu"); }); }); }); diff --git a/src/renderer/components/+preferences/preferences-navigation/preferences-navigation.tsx b/src/renderer/components/+preferences/preferences-navigation/preferences-navigation.tsx index b728412f97..456ed94f3a 100644 --- a/src/renderer/components/+preferences/preferences-navigation/preferences-navigation.tsx +++ b/src/renderer/components/+preferences/preferences-navigation/preferences-navigation.tsx @@ -13,6 +13,7 @@ import type { import preferenceNavigationItemsInjectable from "./preference-navigation-items.injectable"; import { observer } from "mobx-react"; +import { Icon } from "../../icon"; interface Dependencies { navigationItems: IComputedValue; @@ -20,23 +21,44 @@ interface Dependencies { const NonInjectedPreferencesNavigation = ({ navigationItems, -}: Dependencies) => ( - item.navigate()} - > - Preferences +}: Dependencies) => { + const generalNavItems = navigationItems.get().filter(item => !item.fromExtension); + const extensionNavItems = navigationItems.get().filter(item => item.fromExtension); - {navigationItems.get().map((item) => ( + function renderTab(item: PreferenceNavigationItem) { + return ( - ))} - -); + ); + } + + return ( + item.navigate()} + > + Preferences + + {generalNavItems.map(renderTab)} + + {extensionNavItems.length > 0 && ( + + + + Custom Settings + + + {extensionNavItems.map(renderTab)} + + + )} + + ); +}; interface PreferenceNavigationTabProps extends React.DOMAttributes { item: PreferenceNavigationItem;