diff --git a/packages/core/src/extensions/renderer-api/k8s-api.ts b/packages/core/src/extensions/renderer-api/k8s-api.ts index 7dc9abca43..a91508663a 100644 --- a/packages/core/src/extensions/renderer-api/k8s-api.ts +++ b/packages/core/src/extensions/renderer-api/k8s-api.ts @@ -145,5 +145,5 @@ export type { NamespaceStore } from "../../renderer/components/namespaces/store" export type { ServiceAccountStore as ServiceAccountsStore } from "../../renderer/components/user-management/service-accounts/store"; export type { RoleStore as RolesStore } from "../../renderer/components/user-management/roles/store"; export type { RoleBindingStore as RoleBindingsStore } from "../../renderer/components/user-management/role-bindings/store"; -export type { CustomResourceDefinitionStore as CRDStore } from "../../renderer/components/custom-resource-definitions/store"; +export type { CustomResourceDefinitionStore as CRDStore } from "../../renderer/components/custom-resources/definition.store"; export type { CustomResourceStore as CRDResourceStore } from "../../common/k8s-api/api-manager/resource.store"; diff --git a/packages/core/src/features/cluster/custom-resources-in-sidebar.test.tsx b/packages/core/src/features/cluster/custom-resources-in-sidebar.test.tsx index d6a18a648b..332015ed2d 100644 --- a/packages/core/src/features/cluster/custom-resources-in-sidebar.test.tsx +++ b/packages/core/src/features/cluster/custom-resources-in-sidebar.test.tsx @@ -5,8 +5,8 @@ import type { RenderResult } from "@testing-library/react"; import { CustomResourceDefinition } from "../../extensions/common-api/k8s-api"; -import type { CustomResourceDefinitionStore } from "../../renderer/components/custom-resource-definitions/store"; -import customResourceDefinitionStoreInjectable from "../../renderer/components/custom-resource-definitions/store.injectable"; +import type { CustomResourceDefinitionStore } from "../../renderer/components/custom-resources/definition.store"; +import customResourceDefinitionStoreInjectable from "../../renderer/components/custom-resources/definition.store.injectable"; import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder"; diff --git a/packages/core/src/features/custom-resources/__snapshots__/view-with-extra-columns.test.ts.snap b/packages/core/src/features/custom-resources/__snapshots__/view-with-extra-columns.test.ts.snap index 88bcb3ca61..250ff548ab 100644 --- a/packages/core/src/features/custom-resources/__snapshots__/view-with-extra-columns.test.ts.snap +++ b/packages/core/src/features/custom-resources/__snapshots__/view-with-extra-columns.test.ts.snap @@ -77,7 +77,7 @@ exports[`Viewing Custom Resources with extra columns renders 1`] = ` > + + + +
+ + + + extension + + + + Custom Resources + +
({ - route: di.inject(customResourceDefinitionsRouteInjectable), - Component: CustomResourceDefinitions, - }), - - injectionToken: routeSpecificComponentInjectionToken, -}); - -export default customResourceDefinitionsRouteComponentInjectable; diff --git a/packages/core/src/renderer/components/custom-resources/__tests__/__snapshots__/custom-resource-details.test.tsx.snap b/packages/core/src/renderer/components/custom-resources/__tests__/__snapshots__/custom-resource-details.test.tsx.snap index fa01725c6a..5be5bd6bf7 100644 --- a/packages/core/src/renderer/components/custom-resources/__tests__/__snapshots__/custom-resource-details.test.tsx.snap +++ b/packages/core/src/renderer/components/custom-resources/__tests__/__snapshots__/custom-resource-details.test.tsx.snap @@ -3,7 +3,7 @@ exports[` with a CRD with a boolean field should display false in an additionalPrinterColumn as 'false' 1`] = `
with a CRD with a boolean field should displa exports[` with a CRD with a boolean field should display true in an additionalPrinterColumn as 'true' 1`] = `
with a CRD with a boolean field should displa exports[` with a CRD with a number field should display 0 in an additionalPrinterColumn as '0' 1`] = `
with a CRD with a number field should display exports[` with a CRD with a number field should display 1234 in an additionalPrinterColumn as '1234' 1`] = `
", () => { let render: DiRender; diff --git a/packages/core/src/renderer/components/custom-resource-definitions/details.scss b/packages/core/src/renderer/components/custom-resources/crd-details.scss similarity index 77% rename from packages/core/src/renderer/components/custom-resource-definitions/details.scss rename to packages/core/src/renderer/components/custom-resources/crd-details.scss index c79777243f..885ea21f7a 100644 --- a/packages/core/src/renderer/components/custom-resource-definitions/details.scss +++ b/packages/core/src/renderer/components/custom-resources/crd-details.scss @@ -3,11 +3,11 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -@import "./mixins.scss"; +@import "crd.mixins"; -.CustomResourceDefinitionDetails { +.CRDDetails { .conditions { - @include custom-resource-definitions-condition-colors; + @include crd-condition-bgc; } .Table { diff --git a/packages/core/src/renderer/components/custom-resource-definitions/details.tsx b/packages/core/src/renderer/components/custom-resources/crd-details.tsx similarity index 88% rename from packages/core/src/renderer/components/custom-resource-definitions/details.tsx rename to packages/core/src/renderer/components/custom-resources/crd-details.tsx index f9efa63b18..df12532dfa 100644 --- a/packages/core/src/renderer/components/custom-resource-definitions/details.tsx +++ b/packages/core/src/renderer/components/custom-resources/crd-details.tsx @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import "./details.scss"; +import "./crd-details.scss"; import React from "react"; import { Link } from "react-router-dom"; @@ -19,7 +19,7 @@ import type { Logger } from "@k8slens/logger"; import { withInjectables } from "@ogre-tools/injectable-react"; import { loggerInjectionToken } from "@k8slens/logger"; -export interface CustomResourceDefinitionDetailsProps extends KubeObjectDetailsProps { +export interface CRDDetailsProps extends KubeObjectDetailsProps { } interface Dependencies { @@ -27,7 +27,7 @@ interface Dependencies { } @observer -class NonInjectedCustomResourceDefinitionDetails extends React.Component { +class NonInjectedCRDDetails extends React.Component { render() { const { object: crd } = this.props; @@ -36,7 +36,7 @@ class NonInjectedCustomResourceDefinitionDetails extends React.Component +
{crd.getGroup()} @@ -159,7 +159,7 @@ class NonInjectedCustomResourceDefinitionDetails extends React.Component(NonInjectedCustomResourceDefinitionDetails, { +export const CRDDetails = withInjectables(NonInjectedCRDDetails, { getProps: (di, props) => ({ ...props, logger: di.inject(loggerInjectionToken), diff --git a/packages/core/src/renderer/components/custom-resource-definitions/selected-groups-url-param.injectable.ts b/packages/core/src/renderer/components/custom-resources/crd-groups-url-param.injectable.ts similarity index 58% rename from packages/core/src/renderer/components/custom-resource-definitions/selected-groups-url-param.injectable.ts rename to packages/core/src/renderer/components/custom-resources/crd-groups-url-param.injectable.ts index 59558f7624..a5a8d9017f 100644 --- a/packages/core/src/renderer/components/custom-resource-definitions/selected-groups-url-param.injectable.ts +++ b/packages/core/src/renderer/components/custom-resources/crd-groups-url-param.injectable.ts @@ -5,18 +5,16 @@ import { getInjectable } from "@ogre-tools/injectable"; import createPageParamInjectable from "../../navigation/create-page-param.injectable"; -const selectedCustomResourceDefinitionGroupsUrlParamInjectable = getInjectable({ +const crdGroupsUrlParamInjectable = getInjectable({ id: "crd-groups-url-param", instantiate: (di) => { const createPageParam = di.inject(createPageParamInjectable); - return createPageParam({ + return createPageParam({ name: "groups", - defaultValue: new Set(), - parse: (value: string[]) => new Set(value), - stringify: (value) => Array.from(value), + defaultValue: [], }); }, }); -export default selectedCustomResourceDefinitionGroupsUrlParamInjectable; +export default crdGroupsUrlParamInjectable; diff --git a/packages/core/src/renderer/components/custom-resources/crd-list-route-component.injectable.ts b/packages/core/src/renderer/components/custom-resources/crd-list-route-component.injectable.ts new file mode 100644 index 0000000000..be1823e247 --- /dev/null +++ b/packages/core/src/renderer/components/custom-resources/crd-list-route-component.injectable.ts @@ -0,0 +1,21 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { getInjectable } from "@ogre-tools/injectable"; +import { routeSpecificComponentInjectionToken } from "../../routes/route-specific-component-injection-token"; +import crdListRouteInjectable from "../../../common/front-end-routing/routes/cluster/custom-resources/custom-resource-definitions.injectable"; +import { CustomResourceDefinitions } from "./crd-list"; + +const crdListRouteComponentInjectable = getInjectable({ + id: "crd-list-route-component", + + instantiate: (di) => ({ + route: di.inject(crdListRouteInjectable), + Component: CustomResourceDefinitions, + }), + + injectionToken: routeSpecificComponentInjectionToken, +}); + +export default crdListRouteComponentInjectable; diff --git a/packages/core/src/renderer/components/custom-resource-definitions/view.scss b/packages/core/src/renderer/components/custom-resources/crd-list.scss similarity index 89% rename from packages/core/src/renderer/components/custom-resource-definitions/view.scss rename to packages/core/src/renderer/components/custom-resources/crd-list.scss index 3a75f3d77e..eee0fbc481 100644 --- a/packages/core/src/renderer/components/custom-resource-definitions/view.scss +++ b/packages/core/src/renderer/components/custom-resources/crd-list.scss @@ -3,9 +3,9 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -@import "./mixins.scss"; +@import "crd.mixins"; -.CustomResourceDefinitions { +.CrdList { .TableCell { &.kind { flex: 1.5; diff --git a/packages/core/src/renderer/components/custom-resource-definitions/view.tsx b/packages/core/src/renderer/components/custom-resources/crd-list.tsx similarity index 82% rename from packages/core/src/renderer/components/custom-resource-definitions/view.tsx rename to packages/core/src/renderer/components/custom-resources/crd-list.tsx index f125c77da0..3008ca175e 100644 --- a/packages/core/src/renderer/components/custom-resource-definitions/view.tsx +++ b/packages/core/src/renderer/components/custom-resources/crd-list.tsx @@ -3,10 +3,10 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import "./view.scss"; +import "./crd-list.scss"; import React from "react"; -import { computed, makeObservable } from "mobx"; +import { computed, makeObservable, observable } from "mobx"; import { observer } from "mobx-react"; import { Link } from "react-router-dom"; import { iter, stopPropagation } from "@k8slens/utilities"; @@ -16,10 +16,10 @@ import { Icon } from "../icon"; import { KubeObjectAge } from "../kube-object/age"; import { TabLayout } from "../layout/tab-layout-2"; import type { PageParam } from "../../navigation/page-param"; -import type { CustomResourceDefinitionStore } from "./store"; +import type { CustomResourceDefinitionStore } from "./definition.store"; import { withInjectables } from "@ogre-tools/injectable-react"; -import selectedCustomResourceDefinitionGroupsUrlParamInjectable from "./selected-groups-url-param.injectable"; -import customResourceDefinitionStoreInjectable from "./store.injectable"; +import crdGroupsUrlParamInjectable from "./crd-groups-url-param.injectable"; +import customResourceDefinitionStoreInjectable from "./definition.store.injectable"; enum columnId { kind = "kind", @@ -30,54 +30,53 @@ enum columnId { } interface Dependencies { - selectedGroups: PageParam>; + crdGroupsUrlParam: PageParam; customResourceDefinitionStore: CustomResourceDefinitionStore; } @observer class NonInjectedCustomResourceDefinitions extends React.Component { + private readonly selectedGroups = observable.set(this.props.crdGroupsUrlParam.get()); + constructor(props: Dependencies) { super(props); makeObservable(this); } @computed get items() { - const selectedGroups = this.props.selectedGroups.get(); - - if (selectedGroups.size) { - return this.props.customResourceDefinitionStore.items.filter(item => selectedGroups.has(item.getGroup())); + if (this.selectedGroups.size) { + return this.props.customResourceDefinitionStore.items.filter(item => this.selectedGroups.has(item.getGroup())); } return this.props.customResourceDefinitionStore.items; // show all by default } @computed get groupSelectOptions() { - const selectedGroups = this.props.selectedGroups.get(); - return Object.keys(this.props.customResourceDefinitionStore.groups) .map(group => ({ value: group, label: group, - isSelected: selectedGroups.has(group), + isSelected: this.selectedGroups.has(group), })); } toggleSelection = (options: readonly ({ value: string })[]) => { - this.props.selectedGroups.setRaw(options.map(({ value }) => value)); + const groups = options.map(({ value }) => value); + + this.selectedGroups.replace(groups); + this.props.crdGroupsUrlParam.set(groups); }; private getPlaceholder() { - const selectedGroups = this.props.selectedGroups.get(); - - if (selectedGroups.size === 0) { + if (this.selectedGroups.size === 0) { return "All groups"; } - const prefix = selectedGroups.size === 1 + const prefix = this.selectedGroups.size === 1 ? "Group" : "Groups"; - return `${prefix}: ${iter.join(selectedGroups.values(), ", ")}`; + return `${prefix}: ${iter.join(this.selectedGroups.values(), ", ")}`; } render() { @@ -86,7 +85,7 @@ class NonInjectedCustomResourceDefinitions extends React.Component already has and is always mounted subscribeStores={false} @@ -167,7 +166,7 @@ class NonInjectedCustomResourceDefinitions extends React.Component export const CustomResourceDefinitions = withInjectables(NonInjectedCustomResourceDefinitions, { getProps: (di, props) => ({ ...props, - selectedGroups: di.inject(selectedCustomResourceDefinitionGroupsUrlParamInjectable), + crdGroupsUrlParam: di.inject(crdGroupsUrlParamInjectable), customResourceDefinitionStore: di.inject(customResourceDefinitionStoreInjectable), }), }); diff --git a/packages/core/src/renderer/components/custom-resources/details.scss b/packages/core/src/renderer/components/custom-resources/crd-resource-details.scss similarity index 90% rename from packages/core/src/renderer/components/custom-resources/details.scss rename to packages/core/src/renderer/components/custom-resources/crd-resource-details.scss index 34bd13ee39..d9e9e6d449 100644 --- a/packages/core/src/renderer/components/custom-resources/details.scss +++ b/packages/core/src/renderer/components/custom-resources/crd-resource-details.scss @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -.CustomResourceDetails { +.CrdResourceDetails { .status { .ready { color: white; diff --git a/packages/core/src/renderer/components/custom-resources/details.tsx b/packages/core/src/renderer/components/custom-resources/crd-resource-details.tsx similarity index 97% rename from packages/core/src/renderer/components/custom-resources/details.tsx rename to packages/core/src/renderer/components/custom-resources/crd-resource-details.tsx index 6da57ded1e..b8809c872b 100644 --- a/packages/core/src/renderer/components/custom-resources/details.tsx +++ b/packages/core/src/renderer/components/custom-resources/crd-resource-details.tsx @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import "./details.scss"; +import "./crd-resource-details.scss"; import React from "react"; import { observer } from "mobx-react"; @@ -131,7 +131,7 @@ class NonInjectedCustomResourceDetails extends React.Component +
{this.renderAdditionalColumns(object, extraColumns)} {this.renderStatus(object, extraColumns)}
diff --git a/packages/core/src/renderer/components/custom-resources/view.scss b/packages/core/src/renderer/components/custom-resources/crd-resources.scss similarity index 88% rename from packages/core/src/renderer/components/custom-resources/view.scss rename to packages/core/src/renderer/components/custom-resources/crd-resources.scss index cd896eb434..0d0ee419d8 100644 --- a/packages/core/src/renderer/components/custom-resources/view.scss +++ b/packages/core/src/renderer/components/custom-resources/crd-resources.scss @@ -3,5 +3,5 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -.CustomResources { +.CrdResources { } diff --git a/packages/core/src/renderer/components/custom-resources/view.tsx b/packages/core/src/renderer/components/custom-resources/crd-resources.tsx similarity index 93% rename from packages/core/src/renderer/components/custom-resources/view.tsx rename to packages/core/src/renderer/components/custom-resources/crd-resources.tsx index ffb83f70ee..7de4f2230b 100644 --- a/packages/core/src/renderer/components/custom-resources/view.tsx +++ b/packages/core/src/renderer/components/custom-resources/crd-resources.tsx @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import "./view.scss"; +import "./crd-resources.scss"; import React from "react"; import { observer } from "mobx-react"; @@ -14,11 +14,11 @@ import type { ApiManager } from "../../../common/k8s-api/api-manager"; import { formatJSONValue, safeJSONPathValue } from "@k8slens/utilities"; import { TabLayout } from "../layout/tab-layout-2"; import { withInjectables } from "@ogre-tools/injectable-react"; -import customResourcesRouteParametersInjectable from "./route-parameters.injectable"; +import customResourcesRouteParametersInjectable from "./custom-resources-route-parameters.injectable"; import { KubeObjectAge } from "../kube-object/age"; -import type { CustomResourceDefinitionStore } from "../custom-resource-definitions/store"; +import type { CustomResourceDefinitionStore } from "./definition.store"; import apiManagerInjectable from "../../../common/k8s-api/api-manager/manager.injectable"; -import customResourceDefinitionStoreInjectable from "../custom-resource-definitions/store.injectable"; +import customResourceDefinitionStoreInjectable from "./definition.store.injectable"; import { NamespaceSelectBadge } from "../namespaces/namespace-select-badge"; import type { TableCellProps } from "@k8slens/list-layout"; @@ -67,7 +67,7 @@ class NonInjectedCustomResources extends React.Component { isConfigurable key={`crd_resources_${crd.getResourceApiBase()}`} tableId="crd_resources" - className="CustomResources" + className="CrdResources" store={store} sortingCallbacks={{ [columnId.name]: customResource => customResource.getName(), diff --git a/packages/core/src/renderer/components/custom-resource-definitions/mixins.scss b/packages/core/src/renderer/components/custom-resources/crd.mixins.scss similarity index 60% rename from packages/core/src/renderer/components/custom-resource-definitions/mixins.scss rename to packages/core/src/renderer/components/custom-resources/crd.mixins.scss index 144242c571..12be7350da 100644 --- a/packages/core/src/renderer/components/custom-resource-definitions/mixins.scss +++ b/packages/core/src/renderer/components/custom-resources/crd.mixins.scss @@ -3,8 +3,8 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -// ref: https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apis/apiextensions/types.go -$custom-resource-definitions-condition-colors: ( +// CRD conditions from here https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apis/apiextensions/types.go +$crd-condition-colors: ( Established: var(--colorSuccess), NamesAccepted: var(--colorOk), NonStructuralSchema: var(--colorError), @@ -12,8 +12,8 @@ $custom-resource-definitions-condition-colors: ( KubernetesAPIApprovalPolicyConformant: var(--colorWarning) ); -@mixin custom-resource-definitions-condition-colors { - @each $status, $color in $custom-resource-definitions-condition-colors { +@mixin crd-condition-bgc { + @each $status, $color in $crd-condition-colors { .#{$status} { background: $color; color: white; diff --git a/packages/core/src/renderer/components/custom-resource-definitions/groups-sidebar-items-computed.injectable.ts b/packages/core/src/renderer/components/custom-resources/custom-resource-definition-groups-sidebar-items-computed.injectable.ts similarity index 95% rename from packages/core/src/renderer/components/custom-resource-definitions/groups-sidebar-items-computed.injectable.ts rename to packages/core/src/renderer/components/custom-resources/custom-resource-definition-groups-sidebar-items-computed.injectable.ts index 44f280cf4d..e0f2417c71 100644 --- a/packages/core/src/renderer/components/custom-resource-definitions/groups-sidebar-items-computed.injectable.ts +++ b/packages/core/src/renderer/components/custom-resources/custom-resource-definition-groups-sidebar-items-computed.injectable.ts @@ -14,8 +14,8 @@ import navigateToCustomResourcesInjectable from "../../../common/front-end-routi import { shouldShowResourceInjectionToken } from "../../../features/cluster/showing-kube-resources/common/allowed-resources-injection-token"; import routeIsActiveInjectable from "../../routes/route-is-active.injectable"; import routePathParametersInjectable from "../../routes/route-path-parameters.injectable"; -import customResourcesSidebarItemInjectable from "../custom-resources/sidebar-item.injectable"; -import customResourceDefinitionsInjectable from "./definitions.injectable"; +import customResourcesSidebarItemInjectable from "./custom-resources-sidebar-item.injectable"; +import customResourceDefinitionsInjectable from "./custom-resources.injectable"; const titleCaseSplitRegex = /(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/; diff --git a/packages/core/src/renderer/components/custom-resource-definitions/groups-sidebar-items-registrator.injectable.ts b/packages/core/src/renderer/components/custom-resources/custom-resource-definition-groups-sidebar-items-registrator.injectable.ts similarity index 93% rename from packages/core/src/renderer/components/custom-resource-definitions/groups-sidebar-items-registrator.injectable.ts rename to packages/core/src/renderer/components/custom-resources/custom-resource-definition-groups-sidebar-items-registrator.injectable.ts index f2acd7f3d4..979eb8882d 100644 --- a/packages/core/src/renderer/components/custom-resource-definitions/groups-sidebar-items-registrator.injectable.ts +++ b/packages/core/src/renderer/components/custom-resources/custom-resource-definition-groups-sidebar-items-registrator.injectable.ts @@ -6,7 +6,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import { reaction } from "mobx"; import { injectableDifferencingRegistratorWith } from "../../../common/utils/registrator-helper"; import { beforeClusterFrameStartsSecondInjectionToken } from "../../before-frame-starts/tokens"; -import customResourceDefinitionGroupsSidebarItemsComputedInjectable from "./groups-sidebar-items-computed.injectable"; +import customResourceDefinitionGroupsSidebarItemsComputedInjectable from "./custom-resource-definition-groups-sidebar-items-computed.injectable"; const customResourceDefinitionGroupsSidebarItemsRegistratorInjectable = getInjectable({ id: "custom-resource-definition-groups-sidebar-items-registrator", diff --git a/packages/core/src/renderer/components/custom-resource-definitions/sidebar-item.injectable.ts b/packages/core/src/renderer/components/custom-resources/custom-resource-definitions-sidebar-item.injectable.ts similarity index 93% rename from packages/core/src/renderer/components/custom-resource-definitions/sidebar-item.injectable.ts rename to packages/core/src/renderer/components/custom-resources/custom-resource-definitions-sidebar-item.injectable.ts index 0471f5d82c..6b61e1dd1d 100644 --- a/packages/core/src/renderer/components/custom-resource-definitions/sidebar-item.injectable.ts +++ b/packages/core/src/renderer/components/custom-resources/custom-resource-definitions-sidebar-item.injectable.ts @@ -7,7 +7,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import customResourceDefinitionsRouteInjectable from "../../../common/front-end-routing/routes/cluster/custom-resources/custom-resource-definitions.injectable"; import navigateToCustomResourceDefinitionsInjectable from "../../../common/front-end-routing/routes/cluster/custom-resources/navigate-to-custom-resource-definitions.injectable"; import routeIsActiveInjectable from "../../routes/route-is-active.injectable"; -import customResourcesSidebarItemInjectable from "../custom-resources/sidebar-item.injectable"; +import customResourcesSidebarItemInjectable from "./custom-resources-sidebar-item.injectable"; const customResourceDefinitionsSidebarItemInjectable = getInjectable({ id: "sidebar-item-custom-resource-definitions", diff --git a/packages/core/src/renderer/components/custom-resources/route-component.injectable.ts b/packages/core/src/renderer/components/custom-resources/custom-resources-route-component.injectable.ts similarity index 94% rename from packages/core/src/renderer/components/custom-resources/route-component.injectable.ts rename to packages/core/src/renderer/components/custom-resources/custom-resources-route-component.injectable.ts index dee6951404..9d7d165b74 100644 --- a/packages/core/src/renderer/components/custom-resources/route-component.injectable.ts +++ b/packages/core/src/renderer/components/custom-resources/custom-resources-route-component.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import { CustomResources } from "./view"; +import { CustomResources } from "./crd-resources"; import customResourcesRouteInjectable from "../../../common/front-end-routing/routes/cluster/custom-resources/custom-resources-route.injectable"; import { routeSpecificComponentInjectionToken } from "../../routes/route-specific-component-injection-token"; diff --git a/packages/core/src/renderer/components/custom-resources/route-parameters.injectable.ts b/packages/core/src/renderer/components/custom-resources/custom-resources-route-parameters.injectable.ts similarity index 100% rename from packages/core/src/renderer/components/custom-resources/route-parameters.injectable.ts rename to packages/core/src/renderer/components/custom-resources/custom-resources-route-parameters.injectable.ts diff --git a/packages/core/src/renderer/components/custom-resources/sidebar-item.injectable.tsx b/packages/core/src/renderer/components/custom-resources/custom-resources-sidebar-item.injectable.tsx similarity index 100% rename from packages/core/src/renderer/components/custom-resources/sidebar-item.injectable.tsx rename to packages/core/src/renderer/components/custom-resources/custom-resources-sidebar-item.injectable.tsx diff --git a/packages/core/src/renderer/components/custom-resource-definitions/definitions.injectable.ts b/packages/core/src/renderer/components/custom-resources/custom-resources.injectable.ts similarity index 91% rename from packages/core/src/renderer/components/custom-resource-definitions/definitions.injectable.ts rename to packages/core/src/renderer/components/custom-resources/custom-resources.injectable.ts index 394f89384e..2a9ee55927 100644 --- a/packages/core/src/renderer/components/custom-resource-definitions/definitions.injectable.ts +++ b/packages/core/src/renderer/components/custom-resources/custom-resources.injectable.ts @@ -7,7 +7,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; import subscribeStoresInjectable from "../../kube-watch-api/subscribe-stores.injectable"; -import customResourceDefinitionStoreInjectable from "./store.injectable"; +import customResourceDefinitionStoreInjectable from "./definition.store.injectable"; const customResourceDefinitionsInjectable = getInjectable({ id: "custom-resource-definitions", diff --git a/packages/core/src/renderer/components/custom-resource-definitions/store.injectable.ts b/packages/core/src/renderer/components/custom-resources/definition.store.injectable.ts similarity index 95% rename from packages/core/src/renderer/components/custom-resource-definitions/store.injectable.ts rename to packages/core/src/renderer/components/custom-resources/definition.store.injectable.ts index fe956beb9d..c3b0353824 100644 --- a/packages/core/src/renderer/components/custom-resource-definitions/store.injectable.ts +++ b/packages/core/src/renderer/components/custom-resources/definition.store.injectable.ts @@ -9,7 +9,7 @@ import customResourceDefinitionApiInjectable from "../../../common/k8s-api/endpo import { loggerInjectionToken } from "@k8slens/logger"; import clusterFrameContextForClusterScopedResourcesInjectable from "../../cluster-frame-context/for-cluster-scoped-resources.injectable"; import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-created.injectable"; -import { CustomResourceDefinitionStore } from "./store"; +import { CustomResourceDefinitionStore } from "./definition.store"; const customResourceDefinitionStoreInjectable = getInjectable({ id: "custom-resource-definition-store", diff --git a/packages/core/src/renderer/components/custom-resource-definitions/store.ts b/packages/core/src/renderer/components/custom-resources/definition.store.ts similarity index 100% rename from packages/core/src/renderer/components/custom-resource-definitions/store.ts rename to packages/core/src/renderer/components/custom-resources/definition.store.ts diff --git a/packages/core/src/renderer/components/custom-resources/index.ts b/packages/core/src/renderer/components/custom-resources/index.ts new file mode 100644 index 0000000000..b08e5e8eb9 --- /dev/null +++ b/packages/core/src/renderer/components/custom-resources/index.ts @@ -0,0 +1,9 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ + +export * from "./crd-list"; +export * from "./crd-details"; +export * from "./crd-resources"; +export * from "./crd-resource-details"; diff --git a/packages/core/src/renderer/components/kube-object-details/custom-resource-detail-item.injectable.tsx b/packages/core/src/renderer/components/kube-object-details/custom-resource-detail-item.injectable.tsx index ccf808d55a..79370cbc85 100644 --- a/packages/core/src/renderer/components/kube-object-details/custom-resource-detail-item.injectable.tsx +++ b/packages/core/src/renderer/components/kube-object-details/custom-resource-detail-item.injectable.tsx @@ -5,8 +5,8 @@ import { getInjectable } from "@ogre-tools/injectable"; import { computed } from "mobx"; import React from "react"; -import { CustomResourceDetails } from "../custom-resources/details"; -import customResourceDefinitionStoreInjectable from "../custom-resource-definitions/store.injectable"; +import { CustomResourceDetails } from "../custom-resources"; +import customResourceDefinitionStoreInjectable from "../custom-resources/definition.store.injectable"; import currentKubeObjectInDetailsInjectable from "./current-kube-object-in-details.injectable"; import { kubeObjectDetailItemInjectionToken } from "./kube-object-detail-items/kube-object-detail-item-injection-token"; diff --git a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/custom-resource-definitions-detail-item.injectable.ts b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/custom-resource-definitions-detail-item.injectable.ts index 7b12847317..998dfc535f 100644 --- a/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/custom-resource-definitions-detail-item.injectable.ts +++ b/packages/core/src/renderer/components/kube-object-details/kube-object-detail-items/implementations/custom-resource-definitions-detail-item.injectable.ts @@ -5,7 +5,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import { kubeObjectDetailItemInjectionToken } from "../kube-object-detail-item-injection-token"; import { computed } from "mobx"; -import { CustomResourceDefinitionDetails } from "../../../custom-resource-definitions/details"; +import { CRDDetails } from "../../../custom-resources"; import { kubeObjectMatchesToKindAndApiVersion } from "../kube-object-matches-to-kind-and-api-version"; import currentKubeObjectInDetailsInjectable from "../../current-kube-object-in-details.injectable"; @@ -16,7 +16,7 @@ const customResourceDefinitionsDetailItemInjectable = getInjectable({ const kubeObject = di.inject(currentKubeObjectInDetailsInjectable); return { - Component: CustomResourceDefinitionDetails, + Component: CRDDetails, enabled: computed(() => isCustomResourceDefinition(kubeObject.value.get()?.object)), orderNumber: 10, }; diff --git a/packages/core/src/renderer/components/namespaces/request-delete-sub-namespace.injectable.ts b/packages/core/src/renderer/components/namespaces/request-delete-sub-namespace.injectable.ts index abdb9fc60a..72768e8578 100644 --- a/packages/core/src/renderer/components/namespaces/request-delete-sub-namespace.injectable.ts +++ b/packages/core/src/renderer/components/namespaces/request-delete-sub-namespace.injectable.ts @@ -4,7 +4,7 @@ */ import { waitUntilDefined } from "@k8slens/utilities"; import { getInjectable } from "@ogre-tools/injectable"; -import customResourceDefinitionStoreInjectable from "../custom-resource-definitions/store.injectable"; +import customResourceDefinitionStoreInjectable from "../custom-resources/definition.store.injectable"; import apiManagerInjectable from "../../../common/k8s-api/api-manager/manager.injectable"; import type { Namespace } from "@k8slens/kube-object";