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} +
+);