From b1a988e1333bedef6536f06e9fa9fbe2ce0854d5 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Mon, 15 May 2023 15:22:20 -0400 Subject: [PATCH] chore: Move around Custom Resource and Custom Resource Definition files to simplify names Signed-off-by: Sebastian Malton --- .../src/extensions/renderer-api/k8s-api.ts | 2 +- .../custom-resources-in-sidebar.test.tsx | 4 +- .../view-with-extra-columns.test.ts.snap | 126 ++---------------- .../view-with-extra-columns.test.ts | 4 +- ...setup-auto-crd-api-creations.injectable.ts | 2 +- .../registered-commands.injectable.ts | 2 +- .../definitions.injectable.ts} | 2 +- .../details.scss} | 6 +- .../details.tsx} | 12 +- ...oups-sidebar-items-computed.injectable.ts} | 4 +- ...s-sidebar-items-registrator.injectable.ts} | 2 +- .../mixins.scss} | 8 +- .../route-component.injectable.ts | 21 +++ .../selected-groups-url-param.injectable.ts} | 10 +- .../sidebar-item.injectable.ts} | 2 +- .../store.injectable.ts} | 2 +- .../store.ts} | 0 .../view.scss} | 4 +- .../view.tsx} | 41 +++--- .../custom-resource-details.test.tsx.snap | 8 +- .../custom-resource-details.test.tsx | 2 +- .../crd-list-route-component.injectable.ts | 21 --- ...crd-resource-details.scss => details.scss} | 2 +- .../{crd-resource-details.tsx => details.tsx} | 4 +- .../components/custom-resources/index.ts | 9 -- ...table.ts => route-component.injectable.ts} | 2 +- ...able.ts => route-parameters.injectable.ts} | 0 ...ctable.tsx => sidebar-item.injectable.tsx} | 0 .../{crd-resources.scss => view.scss} | 2 +- .../{crd-resources.tsx => view.tsx} | 10 +- ...custom-resource-detail-item.injectable.tsx | 4 +- ...urce-definitions-detail-item.injectable.ts | 4 +- ...request-delete-sub-namespace.injectable.ts | 2 +- 33 files changed, 105 insertions(+), 219 deletions(-) rename packages/core/src/renderer/components/{custom-resources/custom-resources.injectable.ts => custom-resource-definitions/definitions.injectable.ts} (91%) rename packages/core/src/renderer/components/{custom-resources/crd-details.scss => custom-resource-definitions/details.scss} (77%) rename packages/core/src/renderer/components/{custom-resources/crd-details.tsx => custom-resource-definitions/details.tsx} (88%) rename packages/core/src/renderer/components/{custom-resources/custom-resource-definition-groups-sidebar-items-computed.injectable.ts => custom-resource-definitions/groups-sidebar-items-computed.injectable.ts} (95%) rename packages/core/src/renderer/components/{custom-resources/custom-resource-definition-groups-sidebar-items-registrator.injectable.ts => custom-resource-definitions/groups-sidebar-items-registrator.injectable.ts} (93%) rename packages/core/src/renderer/components/{custom-resources/crd.mixins.scss => custom-resource-definitions/mixins.scss} (60%) create mode 100644 packages/core/src/renderer/components/custom-resource-definitions/route-component.injectable.ts rename packages/core/src/renderer/components/{custom-resources/crd-groups-url-param.injectable.ts => custom-resource-definitions/selected-groups-url-param.injectable.ts} (58%) rename packages/core/src/renderer/components/{custom-resources/custom-resource-definitions-sidebar-item.injectable.ts => custom-resource-definitions/sidebar-item.injectable.ts} (93%) rename packages/core/src/renderer/components/{custom-resources/definition.store.injectable.ts => custom-resource-definitions/store.injectable.ts} (95%) rename packages/core/src/renderer/components/{custom-resources/definition.store.ts => custom-resource-definitions/store.ts} (100%) rename packages/core/src/renderer/components/{custom-resources/crd-list.scss => custom-resource-definitions/view.scss} (89%) rename packages/core/src/renderer/components/{custom-resources/crd-list.tsx => custom-resource-definitions/view.tsx} (82%) delete mode 100644 packages/core/src/renderer/components/custom-resources/crd-list-route-component.injectable.ts rename packages/core/src/renderer/components/custom-resources/{crd-resource-details.scss => details.scss} (90%) rename packages/core/src/renderer/components/custom-resources/{crd-resource-details.tsx => details.tsx} (97%) delete mode 100644 packages/core/src/renderer/components/custom-resources/index.ts rename packages/core/src/renderer/components/custom-resources/{custom-resources-route-component.injectable.ts => route-component.injectable.ts} (94%) rename packages/core/src/renderer/components/custom-resources/{custom-resources-route-parameters.injectable.ts => route-parameters.injectable.ts} (100%) rename packages/core/src/renderer/components/custom-resources/{custom-resources-sidebar-item.injectable.tsx => sidebar-item.injectable.tsx} (100%) rename packages/core/src/renderer/components/custom-resources/{crd-resources.scss => view.scss} (88%) rename packages/core/src/renderer/components/custom-resources/{crd-resources.tsx => view.tsx} (93%) diff --git a/packages/core/src/extensions/renderer-api/k8s-api.ts b/packages/core/src/extensions/renderer-api/k8s-api.ts index a91508663a..7dc9abca43 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-resources/definition.store"; +export type { CustomResourceDefinitionStore as CRDStore } from "../../renderer/components/custom-resource-definitions/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 332015ed2d..d6a18a648b 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-resources/definition.store"; -import customResourceDefinitionStoreInjectable from "../../renderer/components/custom-resources/definition.store.injectable"; +import type { CustomResourceDefinitionStore } from "../../renderer/components/custom-resource-definitions/store"; +import customResourceDefinitionStoreInjectable from "../../renderer/components/custom-resource-definitions/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 361d626ae5..5ca8a7d7cd 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 - -
{ +export interface CustomResourceDefinitionDetailsProps extends KubeObjectDetailsProps { } interface Dependencies { @@ -27,7 +27,7 @@ interface Dependencies { } @observer -class NonInjectedCRDDetails extends React.Component { +class NonInjectedCustomResourceDefinitionDetails extends React.Component { render() { const { object: crd } = this.props; @@ -36,7 +36,7 @@ class NonInjectedCRDDetails extends React.Component +
{crd.getGroup()} @@ -159,7 +159,7 @@ class NonInjectedCRDDetails extends React.Component(NonInjectedCRDDetails, { +export const CustomResourceDefinitionDetails = withInjectables(NonInjectedCustomResourceDefinitionDetails, { getProps: (di, props) => ({ ...props, logger: di.inject(loggerInjectionToken), diff --git a/packages/core/src/renderer/components/custom-resources/custom-resource-definition-groups-sidebar-items-computed.injectable.ts b/packages/core/src/renderer/components/custom-resource-definitions/groups-sidebar-items-computed.injectable.ts similarity index 95% rename from packages/core/src/renderer/components/custom-resources/custom-resource-definition-groups-sidebar-items-computed.injectable.ts rename to packages/core/src/renderer/components/custom-resource-definitions/groups-sidebar-items-computed.injectable.ts index e0f2417c71..44f280cf4d 100644 --- a/packages/core/src/renderer/components/custom-resources/custom-resource-definition-groups-sidebar-items-computed.injectable.ts +++ b/packages/core/src/renderer/components/custom-resource-definitions/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 "./custom-resources.injectable"; +import customResourcesSidebarItemInjectable from "../custom-resources/sidebar-item.injectable"; +import customResourceDefinitionsInjectable from "./definitions.injectable"; const titleCaseSplitRegex = /(?<=[a-z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/; diff --git a/packages/core/src/renderer/components/custom-resources/custom-resource-definition-groups-sidebar-items-registrator.injectable.ts b/packages/core/src/renderer/components/custom-resource-definitions/groups-sidebar-items-registrator.injectable.ts similarity index 93% rename from packages/core/src/renderer/components/custom-resources/custom-resource-definition-groups-sidebar-items-registrator.injectable.ts rename to packages/core/src/renderer/components/custom-resource-definitions/groups-sidebar-items-registrator.injectable.ts index 979eb8882d..f2acd7f3d4 100644 --- a/packages/core/src/renderer/components/custom-resources/custom-resource-definition-groups-sidebar-items-registrator.injectable.ts +++ b/packages/core/src/renderer/components/custom-resource-definitions/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 "./custom-resource-definition-groups-sidebar-items-computed.injectable"; +import customResourceDefinitionGroupsSidebarItemsComputedInjectable from "./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-resources/crd.mixins.scss b/packages/core/src/renderer/components/custom-resource-definitions/mixins.scss similarity index 60% rename from packages/core/src/renderer/components/custom-resources/crd.mixins.scss rename to packages/core/src/renderer/components/custom-resource-definitions/mixins.scss index 12be7350da..144242c571 100644 --- a/packages/core/src/renderer/components/custom-resources/crd.mixins.scss +++ b/packages/core/src/renderer/components/custom-resource-definitions/mixins.scss @@ -3,8 +3,8 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -// CRD conditions from here https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apis/apiextensions/types.go -$crd-condition-colors: ( +// ref: https://github.com/kubernetes/apiextensions-apiserver/blob/master/pkg/apis/apiextensions/types.go +$custom-resource-definitions-condition-colors: ( Established: var(--colorSuccess), NamesAccepted: var(--colorOk), NonStructuralSchema: var(--colorError), @@ -12,8 +12,8 @@ $crd-condition-colors: ( KubernetesAPIApprovalPolicyConformant: var(--colorWarning) ); -@mixin crd-condition-bgc { - @each $status, $color in $crd-condition-colors { +@mixin custom-resource-definitions-condition-colors { + @each $status, $color in $custom-resource-definitions-condition-colors { .#{$status} { background: $color; color: white; diff --git a/packages/core/src/renderer/components/custom-resource-definitions/route-component.injectable.ts b/packages/core/src/renderer/components/custom-resource-definitions/route-component.injectable.ts new file mode 100644 index 0000000000..873ece8fb5 --- /dev/null +++ b/packages/core/src/renderer/components/custom-resource-definitions/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 customResourceDefinitionsRouteInjectable from "../../../common/front-end-routing/routes/cluster/custom-resources/custom-resource-definitions.injectable"; +import { CustomResourceDefinitions } from "./view"; + +const customResourceDefinitionsRouteComponentInjectable = getInjectable({ + id: "custom-resource-definitions-route-component", + + instantiate: (di) => ({ + route: di.inject(customResourceDefinitionsRouteInjectable), + Component: CustomResourceDefinitions, + }), + + injectionToken: routeSpecificComponentInjectionToken, +}); + +export default customResourceDefinitionsRouteComponentInjectable; diff --git a/packages/core/src/renderer/components/custom-resources/crd-groups-url-param.injectable.ts b/packages/core/src/renderer/components/custom-resource-definitions/selected-groups-url-param.injectable.ts similarity index 58% rename from packages/core/src/renderer/components/custom-resources/crd-groups-url-param.injectable.ts rename to packages/core/src/renderer/components/custom-resource-definitions/selected-groups-url-param.injectable.ts index a5a8d9017f..59558f7624 100644 --- a/packages/core/src/renderer/components/custom-resources/crd-groups-url-param.injectable.ts +++ b/packages/core/src/renderer/components/custom-resource-definitions/selected-groups-url-param.injectable.ts @@ -5,16 +5,18 @@ import { getInjectable } from "@ogre-tools/injectable"; import createPageParamInjectable from "../../navigation/create-page-param.injectable"; -const crdGroupsUrlParamInjectable = getInjectable({ +const selectedCustomResourceDefinitionGroupsUrlParamInjectable = getInjectable({ id: "crd-groups-url-param", instantiate: (di) => { const createPageParam = di.inject(createPageParamInjectable); - return createPageParam({ + return createPageParam({ name: "groups", - defaultValue: [], + defaultValue: new Set(), + parse: (value: string[]) => new Set(value), + stringify: (value) => Array.from(value), }); }, }); -export default crdGroupsUrlParamInjectable; +export default selectedCustomResourceDefinitionGroupsUrlParamInjectable; diff --git a/packages/core/src/renderer/components/custom-resources/custom-resource-definitions-sidebar-item.injectable.ts b/packages/core/src/renderer/components/custom-resource-definitions/sidebar-item.injectable.ts similarity index 93% rename from packages/core/src/renderer/components/custom-resources/custom-resource-definitions-sidebar-item.injectable.ts rename to packages/core/src/renderer/components/custom-resource-definitions/sidebar-item.injectable.ts index 6b61e1dd1d..0471f5d82c 100644 --- a/packages/core/src/renderer/components/custom-resources/custom-resource-definitions-sidebar-item.injectable.ts +++ b/packages/core/src/renderer/components/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/definition.store.injectable.ts b/packages/core/src/renderer/components/custom-resource-definitions/store.injectable.ts similarity index 95% rename from packages/core/src/renderer/components/custom-resources/definition.store.injectable.ts rename to packages/core/src/renderer/components/custom-resource-definitions/store.injectable.ts index c3b0353824..fe956beb9d 100644 --- a/packages/core/src/renderer/components/custom-resources/definition.store.injectable.ts +++ b/packages/core/src/renderer/components/custom-resource-definitions/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 "./definition.store"; +import { CustomResourceDefinitionStore } from "./store"; const customResourceDefinitionStoreInjectable = getInjectable({ id: "custom-resource-definition-store", diff --git a/packages/core/src/renderer/components/custom-resources/definition.store.ts b/packages/core/src/renderer/components/custom-resource-definitions/store.ts similarity index 100% rename from packages/core/src/renderer/components/custom-resources/definition.store.ts rename to packages/core/src/renderer/components/custom-resource-definitions/store.ts diff --git a/packages/core/src/renderer/components/custom-resources/crd-list.scss b/packages/core/src/renderer/components/custom-resource-definitions/view.scss similarity index 89% rename from packages/core/src/renderer/components/custom-resources/crd-list.scss rename to packages/core/src/renderer/components/custom-resource-definitions/view.scss index eee0fbc481..3a75f3d77e 100644 --- a/packages/core/src/renderer/components/custom-resources/crd-list.scss +++ b/packages/core/src/renderer/components/custom-resource-definitions/view.scss @@ -3,9 +3,9 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -@import "crd.mixins"; +@import "./mixins.scss"; -.CrdList { +.CustomResourceDefinitions { .TableCell { &.kind { flex: 1.5; diff --git a/packages/core/src/renderer/components/custom-resources/crd-list.tsx b/packages/core/src/renderer/components/custom-resource-definitions/view.tsx similarity index 82% rename from packages/core/src/renderer/components/custom-resources/crd-list.tsx rename to packages/core/src/renderer/components/custom-resource-definitions/view.tsx index 03daccf0e7..75b9259c75 100644 --- a/packages/core/src/renderer/components/custom-resources/crd-list.tsx +++ b/packages/core/src/renderer/components/custom-resource-definitions/view.tsx @@ -3,10 +3,10 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import "./crd-list.scss"; +import "./view.scss"; import React from "react"; -import { computed, makeObservable, observable } from "mobx"; +import { computed, makeObservable } 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 "@k8slens/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 "./definition.store"; +import type { CustomResourceDefinitionStore } from "./store"; import { withInjectables } from "@ogre-tools/injectable-react"; -import crdGroupsUrlParamInjectable from "./crd-groups-url-param.injectable"; -import customResourceDefinitionStoreInjectable from "./definition.store.injectable"; +import selectedCustomResourceDefinitionGroupsUrlParamInjectable from "./selected-groups-url-param.injectable"; +import customResourceDefinitionStoreInjectable from "./store.injectable"; enum columnId { kind = "kind", @@ -30,53 +30,54 @@ enum columnId { } interface Dependencies { - crdGroupsUrlParam: PageParam; + selectedGroups: 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() { - if (this.selectedGroups.size) { - return this.props.customResourceDefinitionStore.items.filter(item => this.selectedGroups.has(item.getGroup())); + const selectedGroups = this.props.selectedGroups.get(); + + if (selectedGroups.size) { + return this.props.customResourceDefinitionStore.items.filter(item => 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: this.selectedGroups.has(group), + isSelected: selectedGroups.has(group), })); } toggleSelection = (options: readonly ({ value: string })[]) => { - const groups = options.map(({ value }) => value); - - this.selectedGroups.replace(groups); - this.props.crdGroupsUrlParam.set(groups); + this.props.selectedGroups.setRaw(options.map(({ value }) => value)); }; private getPlaceholder() { - if (this.selectedGroups.size === 0) { + const selectedGroups = this.props.selectedGroups.get(); + + if (selectedGroups.size === 0) { return "All groups"; } - const prefix = this.selectedGroups.size === 1 + const prefix = selectedGroups.size === 1 ? "Group" : "Groups"; - return `${prefix}: ${iter.join(this.selectedGroups.values(), ", ")}`; + return `${prefix}: ${iter.join(selectedGroups.values(), ", ")}`; } render() { @@ -85,7 +86,7 @@ class NonInjectedCustomResourceDefinitions extends React.Component already has and is always mounted subscribeStores={false} @@ -166,7 +167,7 @@ class NonInjectedCustomResourceDefinitions extends React.Component export const CustomResourceDefinitions = withInjectables(NonInjectedCustomResourceDefinitions, { getProps: (di, props) => ({ ...props, - crdGroupsUrlParam: di.inject(crdGroupsUrlParamInjectable), + selectedGroups: di.inject(selectedCustomResourceDefinitionGroupsUrlParamInjectable), customResourceDefinitionStore: di.inject(customResourceDefinitionStoreInjectable), }), }); 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 5be5bd6bf7..fa01725c6a 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-resources/crd-list-route-component.injectable.ts b/packages/core/src/renderer/components/custom-resources/crd-list-route-component.injectable.ts deleted file mode 100644 index be1823e247..0000000000 --- a/packages/core/src/renderer/components/custom-resources/crd-list-route-component.injectable.ts +++ /dev/null @@ -1,21 +0,0 @@ -/** - * 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-resources/crd-resource-details.scss b/packages/core/src/renderer/components/custom-resources/details.scss similarity index 90% rename from packages/core/src/renderer/components/custom-resources/crd-resource-details.scss rename to packages/core/src/renderer/components/custom-resources/details.scss index d9e9e6d449..34bd13ee39 100644 --- a/packages/core/src/renderer/components/custom-resources/crd-resource-details.scss +++ b/packages/core/src/renderer/components/custom-resources/details.scss @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -.CrdResourceDetails { +.CustomResourceDetails { .status { .ready { color: white; diff --git a/packages/core/src/renderer/components/custom-resources/crd-resource-details.tsx b/packages/core/src/renderer/components/custom-resources/details.tsx similarity index 97% rename from packages/core/src/renderer/components/custom-resources/crd-resource-details.tsx rename to packages/core/src/renderer/components/custom-resources/details.tsx index b8809c872b..6da57ded1e 100644 --- a/packages/core/src/renderer/components/custom-resources/crd-resource-details.tsx +++ b/packages/core/src/renderer/components/custom-resources/details.tsx @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import "./crd-resource-details.scss"; +import "./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/index.ts b/packages/core/src/renderer/components/custom-resources/index.ts deleted file mode 100644 index b08e5e8eb9..0000000000 --- a/packages/core/src/renderer/components/custom-resources/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/** - * 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/custom-resources/custom-resources-route-component.injectable.ts b/packages/core/src/renderer/components/custom-resources/route-component.injectable.ts similarity index 94% rename from packages/core/src/renderer/components/custom-resources/custom-resources-route-component.injectable.ts rename to packages/core/src/renderer/components/custom-resources/route-component.injectable.ts index 9d7d165b74..dee6951404 100644 --- a/packages/core/src/renderer/components/custom-resources/custom-resources-route-component.injectable.ts +++ b/packages/core/src/renderer/components/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 "./crd-resources"; +import { CustomResources } from "./view"; 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/custom-resources-route-parameters.injectable.ts b/packages/core/src/renderer/components/custom-resources/route-parameters.injectable.ts similarity index 100% rename from packages/core/src/renderer/components/custom-resources/custom-resources-route-parameters.injectable.ts rename to packages/core/src/renderer/components/custom-resources/route-parameters.injectable.ts diff --git a/packages/core/src/renderer/components/custom-resources/custom-resources-sidebar-item.injectable.tsx b/packages/core/src/renderer/components/custom-resources/sidebar-item.injectable.tsx similarity index 100% rename from packages/core/src/renderer/components/custom-resources/custom-resources-sidebar-item.injectable.tsx rename to packages/core/src/renderer/components/custom-resources/sidebar-item.injectable.tsx diff --git a/packages/core/src/renderer/components/custom-resources/crd-resources.scss b/packages/core/src/renderer/components/custom-resources/view.scss similarity index 88% rename from packages/core/src/renderer/components/custom-resources/crd-resources.scss rename to packages/core/src/renderer/components/custom-resources/view.scss index 0d0ee419d8..cd896eb434 100644 --- a/packages/core/src/renderer/components/custom-resources/crd-resources.scss +++ b/packages/core/src/renderer/components/custom-resources/view.scss @@ -3,5 +3,5 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -.CrdResources { +.CustomResources { } diff --git a/packages/core/src/renderer/components/custom-resources/crd-resources.tsx b/packages/core/src/renderer/components/custom-resources/view.tsx similarity index 93% rename from packages/core/src/renderer/components/custom-resources/crd-resources.tsx rename to packages/core/src/renderer/components/custom-resources/view.tsx index 7de4f2230b..ffb83f70ee 100644 --- a/packages/core/src/renderer/components/custom-resources/crd-resources.tsx +++ b/packages/core/src/renderer/components/custom-resources/view.tsx @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import "./crd-resources.scss"; +import "./view.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 "./custom-resources-route-parameters.injectable"; +import customResourcesRouteParametersInjectable from "./route-parameters.injectable"; import { KubeObjectAge } from "../kube-object/age"; -import type { CustomResourceDefinitionStore } from "./definition.store"; +import type { CustomResourceDefinitionStore } from "../custom-resource-definitions/store"; import apiManagerInjectable from "../../../common/k8s-api/api-manager/manager.injectable"; -import customResourceDefinitionStoreInjectable from "./definition.store.injectable"; +import customResourceDefinitionStoreInjectable from "../custom-resource-definitions/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="CrdResources" + className="CustomResources" store={store} sortingCallbacks={{ [columnId.name]: customResource => customResource.getName(), 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 79370cbc85..ccf808d55a 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"; -import customResourceDefinitionStoreInjectable from "../custom-resources/definition.store.injectable"; +import { CustomResourceDetails } from "../custom-resources/details"; +import customResourceDefinitionStoreInjectable from "../custom-resource-definitions/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 998dfc535f..7b12847317 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 { CRDDetails } from "../../../custom-resources"; +import { CustomResourceDefinitionDetails } from "../../../custom-resource-definitions/details"; 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: CRDDetails, + Component: CustomResourceDefinitionDetails, 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 72768e8578..abdb9fc60a 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-resources/definition.store.injectable"; +import customResourceDefinitionStoreInjectable from "../custom-resource-definitions/store.injectable"; import apiManagerInjectable from "../../../common/k8s-api/api-manager/manager.injectable"; import type { Namespace } from "@k8slens/kube-object";