diff --git a/src/features/preferences/renderer/get-preference-page.tsx b/src/features/preferences/renderer/get-preference-page.tsx index 544293a218..a8c016c9f3 100644 --- a/src/features/preferences/renderer/get-preference-page.tsx +++ b/src/features/preferences/renderer/get-preference-page.tsx @@ -3,9 +3,12 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import React from "react"; -import type { PreferencePageComponent } from "./preference-items/preference-item-injection-token"; +import type { + PreferenceItemComponent, + PreferencePage, +} from "./preference-items/preference-item-injection-token"; -export const getPreferencePage = (label: string): PreferencePageComponent => ({ children, item }) => ( +export const getPreferencePage = (label: string): PreferenceItemComponent => ({ children, item }) => (

{label}

diff --git a/src/features/preferences/renderer/preference-items/kubernetes/kubectl/kubectl-group-preference-item.injectable.ts b/src/features/preferences/renderer/preference-items/kubernetes/kubectl/kubectl-group-preference-item.injectable.tsx similarity index 56% rename from src/features/preferences/renderer/preference-items/kubernetes/kubectl/kubectl-group-preference-item.injectable.ts rename to src/features/preferences/renderer/preference-items/kubernetes/kubectl/kubectl-group-preference-item.injectable.tsx index ea837d6373..5ef18cd347 100644 --- a/src/features/preferences/renderer/preference-items/kubernetes/kubectl/kubectl-group-preference-item.injectable.ts +++ b/src/features/preferences/renderer/preference-items/kubernetes/kubectl/kubectl-group-preference-item.injectable.tsx @@ -3,16 +3,29 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; +import type { PreferenceTypes } from "../../preference-item-injection-token"; import { preferenceItemInjectionToken } from "../../preference-item-injection-token"; +import Gutter from "../../../../../../renderer/components/gutter/gutter"; +import React from "react"; + +const PreferenceItemGroup = ({ + children, + item, +}: { + children: React.ReactElement; + item: PreferenceTypes; +}) =>
{children}
; const kubectlGroupPreferenceItemInjectable = getInjectable({ id: "kubectl-group-preference-item", instantiate: () => ({ - kind: "group" as const, + kind: "item" as const, id: "kubectl", parentId: "kubernetes-page", orderNumber: 10, + Component: PreferenceItemGroup, + childrenSeparator: () => , }), injectionToken: preferenceItemInjectionToken, diff --git a/src/features/preferences/renderer/preference-items/preference-item-injection-token.ts b/src/features/preferences/renderer/preference-items/preference-item-injection-token.ts index c4d3de94fd..beb4e64027 100644 --- a/src/features/preferences/renderer/preference-items/preference-item-injection-token.ts +++ b/src/features/preferences/renderer/preference-items/preference-item-injection-token.ts @@ -6,13 +6,9 @@ import { getInjectionToken } from "@ogre-tools/injectable"; import type { IComputedValue } from "mobx"; import type React from "react"; -export type PreferenceItemComponent = React.ComponentType<{ +export type PreferenceItemComponent = React.ComponentType<{ children: React.ReactElement; -}>; - -export type PreferencePageComponent = React.ComponentType<{ - children: React.ReactElement; - item: PreferencePage; + item: T; }>; export interface PreferenceTab { @@ -41,28 +37,20 @@ export interface PreferencePage { parentId: string; isShown?: IComputedValue | boolean; childrenSeparator?: () => React.ReactElement; - Component: PreferencePageComponent; -} - -export interface PreferenceGroup { - kind: "group"; - id: string; - parentId: string; - isShown?: IComputedValue | boolean; - childrenSeparator?: () => React.ReactElement; + Component: PreferenceItemComponent; } export interface PreferenceItem { kind: "item"; - Component: PreferenceItemComponent; id: string; parentId: string; orderNumber: number; isShown?: IComputedValue | boolean; childrenSeparator?: () => React.ReactElement; + Component: PreferenceItemComponent; } -export type PreferenceTypes = PreferenceTabGroup | PreferenceTab | PreferenceItem | PreferencePage | PreferenceGroup; +export type PreferenceTypes = PreferenceTabGroup | PreferenceTab | PreferenceItem | PreferencePage; export const preferenceItemInjectionToken = getInjectionToken({ id: "preference-item-injection-token", diff --git a/src/features/preferences/renderer/preference-navigation/preferences-navigation.tsx b/src/features/preferences/renderer/preference-navigation/preferences-navigation.tsx index 7e4b17c667..4704aa593b 100644 --- a/src/features/preferences/renderer/preference-navigation/preferences-navigation.tsx +++ b/src/features/preferences/renderer/preference-navigation/preferences-navigation.tsx @@ -36,7 +36,6 @@ export const PreferencesNavigation = withInjectables( }, ); - const toNavigationHierarchy = (composite: Composite) => { // Note: This makes tab groups and tabs without content not render anything in navigation. if (!hasContent(composite)) { @@ -57,10 +56,6 @@ const toNavigationHierarchy = (composite: Composite diff --git a/src/features/preferences/renderer/preferences.tsx b/src/features/preferences/renderer/preferences.tsx index 075bb1a18c..1c1492ed37 100644 --- a/src/features/preferences/renderer/preferences.tsx +++ b/src/features/preferences/renderer/preferences.tsx @@ -53,26 +53,12 @@ const toPreferenceItemHierarchy = (composite: Composite) => { const value = composite.value; switch (value.kind) { - // Todo: rename to item-group - case "group": { - return ( -
- - {toPreferenceItemHierarchy} - -
- ); - } - case "item": { const Component = value.Component; return (
- +