diff --git a/src/features/preferences/renderer/compliance-for-legacy-extension-api/registrator-for-preference-items.injectable.tsx b/src/features/preferences/renderer/compliance-for-legacy-extension-api/registrator-for-preference-items.injectable.tsx
index 9d819ce4a6..a267f5a73f 100644
--- a/src/features/preferences/renderer/compliance-for-legacy-extension-api/registrator-for-preference-items.injectable.tsx
+++ b/src/features/preferences/renderer/compliance-for-legacy-extension-api/registrator-for-preference-items.injectable.tsx
@@ -7,7 +7,7 @@ import { getInjectable } from "@ogre-tools/injectable";
import type { LensRendererExtension } from "../../../../extensions/lens-renderer-extension";
import { preferenceItemInjectionToken } from "../preference-items/preference-item-injection-token";
import { extensionRegistratorInjectionToken } from "../../../../extensions/extension-loader/extension-registrator-injection-token";
-import { getPreferencePage } from "../get-preference-page";
+import { PreferencePageComponent } from "../preference-page-component";
import { ExtensionPreferenceItem } from "./extension-preference-item";
import { computed } from "mobx";
@@ -35,16 +35,24 @@ const registratorForPreferenceItemsInjectable = getInjectable({
injectionToken: preferenceItemInjectionToken,
});
- const pageId = `${commonId}-page`;
+ const primaryPageId = `${commonId}-page`;
const primaryPageInjectable = getInjectable({
- id: pageId,
+ id: primaryPageId,
instantiate: () => ({
kind: "page" as const,
- id: pageId,
+ id: primaryPageId,
parentId: tabId,
- orderNumber: 0,
- Component: getPreferencePage(`${extension.name} preferences`),
+
+ Component: ({ children }: { children: React.ReactElement }) => (
+
+ {children}
+
+ ),
+
childrenSeparator: () =>
,
}),
@@ -85,7 +93,15 @@ const registratorForPreferenceItemsInjectable = getInjectable({
kind: "page" as const,
id: additionalPageId,
parentId: additionalTabId,
- Component: getPreferencePage(registration.title),
+
+ Component: ({ children }: { children: React.ReactElement }) => (
+
+ {children}
+
+ ),
}),
injectionToken: preferenceItemInjectionToken,
@@ -108,7 +124,7 @@ const registratorForPreferenceItemsInjectable = getInjectable({
? registration.showInPreferencesTab === "telemetry"
? "telemetry-page"
: `${commonId}-additional-page-${registration.showInPreferencesTab}`
- : pageId,
+ : primaryPageId,
orderNumber: i * 10,
diff --git a/src/features/preferences/renderer/get-preference-page.tsx b/src/features/preferences/renderer/get-preference-page.tsx
deleted file mode 100644
index a8c016c9f3..0000000000
--- a/src/features/preferences/renderer/get-preference-page.tsx
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
- * Copyright (c) OpenLens Authors. All rights reserved.
- * Licensed under MIT License. See LICENSE in root directory for more information.
- */
-import React from "react";
-import type {
- PreferenceItemComponent,
- PreferencePage,
-} from "./preference-items/preference-item-injection-token";
-
-export const getPreferencePage = (label: string): PreferenceItemComponent => ({ children, item }) => (
-
- {label}
-
- {children}
-
-);
diff --git a/src/features/preferences/renderer/preference-items/application/application-preference-page.injectable.tsx b/src/features/preferences/renderer/preference-items/application/application-preference-page.injectable.tsx
index aa35ff20d6..14ab1e4efc 100644
--- a/src/features/preferences/renderer/preference-items/application/application-preference-page.injectable.tsx
+++ b/src/features/preferences/renderer/preference-items/application/application-preference-page.injectable.tsx
@@ -3,9 +3,17 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
+import type { PreferenceItemComponent, PreferencePage } from "../preference-item-injection-token";
import { preferenceItemInjectionToken } from "../preference-item-injection-token";
-import { getPreferencePage } from "../../get-preference-page";
+import { PreferencePageComponent } from "../../preference-page-component";
import { HorizontalLine } from "../../horizontal-line/horizontal-line";
+import React from "react";
+
+const ApplicationPage: PreferenceItemComponent = ({ children, item }) => (
+
+ {children}
+
+);
const applicationPreferencePageInjectable = getInjectable({
id: "application-preference-page",
@@ -14,8 +22,7 @@ const applicationPreferencePageInjectable = getInjectable({
kind: "page" as const,
id: "application-page",
parentId: "application-tab",
- orderNumber: 0,
- Component: getPreferencePage("Application"),
+ Component: ApplicationPage,
childrenSeparator: HorizontalLine,
}),
diff --git a/src/features/preferences/renderer/preference-items/editor/editor-preference-page.injectable.ts b/src/features/preferences/renderer/preference-items/editor/editor-preference-page.injectable.tsx
similarity index 58%
rename from src/features/preferences/renderer/preference-items/editor/editor-preference-page.injectable.ts
rename to src/features/preferences/renderer/preference-items/editor/editor-preference-page.injectable.tsx
index 2db57244e3..3d075d6f22 100644
--- a/src/features/preferences/renderer/preference-items/editor/editor-preference-page.injectable.ts
+++ b/src/features/preferences/renderer/preference-items/editor/editor-preference-page.injectable.tsx
@@ -3,8 +3,16 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
+import type { PreferenceItemComponent, PreferencePage } from "../preference-item-injection-token";
import { preferenceItemInjectionToken } from "../preference-item-injection-token";
-import { getPreferencePage } from "../../get-preference-page";
+import { PreferencePageComponent } from "../../preference-page-component";
+import React from "react";
+
+const EditorPage: PreferenceItemComponent = ({ children, item }) => (
+
+ {children}
+
+);
const editorPreferencePageInjectable = getInjectable({
id: "editor-preference-page",
@@ -13,8 +21,7 @@ const editorPreferencePageInjectable = getInjectable({
kind: "page" as const,
id: "editor-page",
parentId: "editor-tab",
- orderNumber: 0,
- Component: getPreferencePage("Editor"),
+ Component: EditorPage,
}),
injectionToken: preferenceItemInjectionToken,
diff --git a/src/features/preferences/renderer/preference-items/kubernetes/kubernetes-preference-page.injectable.tsx b/src/features/preferences/renderer/preference-items/kubernetes/kubernetes-preference-page.injectable.tsx
index d2fb8adfd1..0f1a1c6ebf 100644
--- a/src/features/preferences/renderer/preference-items/kubernetes/kubernetes-preference-page.injectable.tsx
+++ b/src/features/preferences/renderer/preference-items/kubernetes/kubernetes-preference-page.injectable.tsx
@@ -3,9 +3,17 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
+import type { PreferenceItemComponent, PreferencePage } from "../preference-item-injection-token";
import { preferenceItemInjectionToken } from "../preference-item-injection-token";
-import { getPreferencePage } from "../../get-preference-page";
+import { PreferencePageComponent } from "../../preference-page-component";
import { HorizontalLine } from "../../horizontal-line/horizontal-line";
+import React from "react";
+
+const KubernetesPage: PreferenceItemComponent = ({ children, item }) => (
+
+ {children}
+
+);
const kubernetesPreferencePageInjectable = getInjectable({
id: "kubernetes-preference-page",
@@ -14,8 +22,7 @@ const kubernetesPreferencePageInjectable = getInjectable({
kind: "page" as const,
id: "kubernetes-page",
parentId: "kubernetes-tab",
- orderNumber: 0,
- Component: getPreferencePage("Kubernetes"),
+ Component: KubernetesPage,
childrenSeparator: HorizontalLine,
}),
diff --git a/src/features/preferences/renderer/preference-items/proxy/proxy-preference-page.injectable.tsx b/src/features/preferences/renderer/preference-items/proxy/proxy-preference-page.injectable.tsx
index 1bd790ef74..25fa035529 100644
--- a/src/features/preferences/renderer/preference-items/proxy/proxy-preference-page.injectable.tsx
+++ b/src/features/preferences/renderer/preference-items/proxy/proxy-preference-page.injectable.tsx
@@ -3,11 +3,18 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
+import type { PreferenceItemComponent, PreferencePage } from "../preference-item-injection-token";
import { preferenceItemInjectionToken } from "../preference-item-injection-token";
import React from "react";
-import { getPreferencePage } from "../../get-preference-page";
+import { PreferencePageComponent } from "../../preference-page-component";
import { HorizontalLine } from "../../horizontal-line/horizontal-line";
+const ProxyPage: PreferenceItemComponent = ({ children, item }) => (
+
+ {children}
+
+);
+
const proxyPreferencePageInjectable = getInjectable({
id: "proxy-preference-page",
@@ -15,8 +22,7 @@ const proxyPreferencePageInjectable = getInjectable({
kind: "page" as const,
id: "proxy-page",
parentId: "proxy-tab",
- orderNumber: 0,
- Component: getPreferencePage("Proxy"),
+ Component: ProxyPage,
childrenSeparator: () => ,
}),
diff --git a/src/features/preferences/renderer/preference-items/telemetry/telemetry-preference-page.injectable.tsx b/src/features/preferences/renderer/preference-items/telemetry/telemetry-preference-page.injectable.tsx
index 716e8b8d8e..8c7bfd748e 100644
--- a/src/features/preferences/renderer/preference-items/telemetry/telemetry-preference-page.injectable.tsx
+++ b/src/features/preferences/renderer/preference-items/telemetry/telemetry-preference-page.injectable.tsx
@@ -3,9 +3,16 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
+import type { PreferenceItemComponent, PreferencePage } from "../preference-item-injection-token";
import { preferenceItemInjectionToken } from "../preference-item-injection-token";
import React from "react";
-import { getPreferencePage } from "../../get-preference-page";
+import { PreferencePageComponent } from "../../preference-page-component";
+
+const TelemetryPage: PreferenceItemComponent = ({ children, item }) => (
+
+ {children}
+
+);
const telemetryPreferencePageInjectable = getInjectable({
id: "telemetry-preference-page",
@@ -14,8 +21,7 @@ const telemetryPreferencePageInjectable = getInjectable({
kind: "page" as const,
id: "telemetry-page",
parentId: "telemetry-tab",
- orderNumber: 0,
- Component: getPreferencePage("Telemetry"),
+ Component: TelemetryPage,
childrenSeparator: () =>
,
}),
diff --git a/src/features/preferences/renderer/preference-items/terminal/terminal-page-preference-item.injectable.tsx b/src/features/preferences/renderer/preference-items/terminal/terminal-page-preference-item.injectable.tsx
index 08ea936ea3..416765ffee 100644
--- a/src/features/preferences/renderer/preference-items/terminal/terminal-page-preference-item.injectable.tsx
+++ b/src/features/preferences/renderer/preference-items/terminal/terminal-page-preference-item.injectable.tsx
@@ -3,8 +3,16 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
+import type { PreferenceItemComponent, PreferencePage } from "../preference-item-injection-token";
import { preferenceItemInjectionToken } from "../preference-item-injection-token";
-import { getPreferencePage } from "../../get-preference-page";
+import { PreferencePageComponent } from "../../preference-page-component";
+import React from "react";
+
+const TerminalPage: PreferenceItemComponent = ({ children, item }) => (
+
+ {children}
+
+);
const terminalPagePreferenceItemInjectable = getInjectable({
id: "terminal-preference-page",
@@ -13,8 +21,7 @@ const terminalPagePreferenceItemInjectable = getInjectable({
kind: "page" as const,
id: "terminal-page",
parentId: "terminal-tab",
- orderNumber: 0,
- Component: getPreferencePage("Terminal"),
+ Component: TerminalPage,
}),
injectionToken: preferenceItemInjectionToken,
diff --git a/src/features/preferences/renderer/preference-page-component.tsx b/src/features/preferences/renderer/preference-page-component.tsx
new file mode 100644
index 0000000000..9f235d1385
--- /dev/null
+++ b/src/features/preferences/renderer/preference-page-component.tsx
@@ -0,0 +1,19 @@
+/**
+ * Copyright (c) OpenLens Authors. All rights reserved.
+ * Licensed under MIT License. See LICENSE in root directory for more information.
+ */
+import React from "react";
+
+interface PreferencePageComponentProps {
+ children: React.ReactElement;
+ id: string;
+ title: string;
+}
+
+export const PreferencePageComponent = ({ children, id, title }: PreferencePageComponentProps ) => (
+
+ {title}
+
+ {children}
+
+);