From 0b32775d401b32773948f36157341e01ece1cd6f Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 1 Mar 2022 13:06:53 -0500 Subject: [PATCH] Enforce some naming conventions (#4813) --- .eslintrc.js | 23 ++++ docs/extensions/guides/renderer-extension.md | 4 +- docs/extensions/guides/resource-stack.md | 6 +- .../src/metrics-settings.tsx | 6 +- src/common/__tests__/kube-helpers.test.ts | 4 +- src/common/app-event-bus/event-bus.ts | 4 +- src/common/catalog-entities/web-link.ts | 4 +- src/common/k8s-api/endpoints/crd.api.ts | 4 +- src/common/k8s-api/kube-api.ts | 4 +- src/common/utils/index.ts | 3 +- src/common/utils/singleton.ts | 2 +- src/common/utils/tuple.ts | 10 +- src/common/utils/types.ts | 10 -- .../renderer-api/kube-object-status.ts | 4 +- .../base-cluster-detector.ts | 4 +- src/main/lens-binary.ts | 4 +- src/main/prometheus/provider-registry.ts | 4 +- .../+catalog/catalog-add-button.tsx | 4 +- .../+catalog/catalog-entity-details.tsx | 4 +- .../components/+catalog/catalog-menu.tsx | 6 +- src/renderer/components/+catalog/catalog.tsx | 8 +- .../components/+cluster/cluster-issues.tsx | 6 +- .../+cluster/cluster-no-metrics.tsx | 4 +- .../components/+config-autoscalers/hpa.tsx | 4 +- .../limit-range-details.tsx | 4 +- .../+config-limit-ranges/limit-ranges.tsx | 4 +- .../+config-maps/config-map-details.tsx | 6 +- .../components/+config-maps/config-maps.tsx | 4 +- .../pod-disruption-budgets-details.tsx | 4 +- .../pod-disruption-budgets.tsx | 4 +- .../add-quota-dialog.tsx | 6 +- .../resource-quota-details.tsx | 4 +- .../resource-quotas.tsx | 4 +- .../+config-secrets/add-secret-dialog.tsx | 6 +- .../+config-secrets/secret-details.tsx | 6 +- .../components/+config-secrets/secrets.tsx | 4 +- .../+custom-resources/crd-details.tsx | 4 +- .../components/+custom-resources/crd-list.tsx | 2 +- .../crd-resource-details.tsx | 4 +- .../+custom-resources/crd-resources.tsx | 6 +- .../components/+custom-resources/route.tsx | 7 +- .../+entity-settings/entity-settings.tsx | 6 +- .../components/+events/event-details.tsx | 4 +- src/renderer/components/+events/events.tsx | 8 +- .../components/+events/kube-event-icon.tsx | 7 +- .../components/+extensions/install.tsx | 6 +- .../+extensions/installed-extensions.tsx | 23 ++-- .../components/+extensions/notice.tsx | 4 +- .../+helm-charts/helm-chart-details.tsx | 8 +- .../components/+helm-charts/helm-charts.tsx | 4 +- .../release-details/release-details.tsx | 8 +- .../+helm-releases/release-menu.tsx | 6 +- .../release-rollback-dialog.tsx | 8 +- .../components/+helm-releases/releases.tsx | 6 +- .../+namespaces/add-namespace-dialog.tsx | 8 +- .../+namespaces/namespace-details.tsx | 8 +- .../+namespaces/namespace-select-filter.tsx | 130 ++++++++---------- .../+namespaces/namespace-select.tsx | 10 +- .../+network-endpoints/endpoint-details.tsx | 4 +- .../endpoint-subset-list.tsx | 4 +- .../+network-endpoints/endpoints.tsx | 4 +- .../+network-ingresses/ingress-details.tsx | 6 +- .../+network-ingresses/ingresses.tsx | 4 +- .../+network-policies/network-policies.tsx | 4 +- .../network-policy-details.tsx | 4 +- .../port-forward-details.tsx | 4 +- .../port-forward-menu.tsx | 6 +- .../+network-port-forwards/port-forwards.tsx | 6 +- .../service-details-endpoint.tsx | 4 +- .../+network-services/service-details.tsx | 6 +- .../service-port-component.tsx | 8 +- .../components/+network-services/services.tsx | 4 +- .../components/+nodes/details-resources.tsx | 4 +- src/renderer/components/+nodes/details.tsx | 8 +- src/renderer/components/+nodes/route.tsx | 6 +- .../pod-security-policy-details.tsx | 4 +- .../+preferences/add-helm-repo-dialog.tsx | 8 +- .../+preferences/extension-settings.tsx | 2 +- .../+preferences/removable-item.tsx | 4 +- .../storage-class-details.tsx | 6 +- .../+storage-classes/storage-classes.tsx | 4 +- .../volume-claim-details.tsx | 6 +- .../+storage-volume-claims/volume-claims.tsx | 4 +- .../+storage-volumes/volume-details-list.tsx | 4 +- .../+storage-volumes/volume-details.tsx | 4 +- .../components/+storage-volumes/volumes.tsx | 4 +- .../+cluster-role-bindings/details.tsx | 6 +- .../+cluster-role-bindings/dialog.tsx | 6 +- .../+cluster-role-bindings/view.tsx | 4 +- .../+cluster-roles/add-dialog.tsx | 6 +- .../+cluster-roles/details.tsx | 4 +- .../+user-management/+cluster-roles/view.tsx | 4 +- .../+role-bindings/details.tsx | 4 +- .../+role-bindings/dialog.tsx | 6 +- .../+user-management/+role-bindings/view.tsx | 4 +- .../+user-management/+roles/add-dialog.tsx | 6 +- .../+user-management/+roles/details.tsx | 4 +- .../+user-management/+roles/view.tsx | 4 +- .../+service-accounts/create-dialog.tsx | 6 +- .../+service-accounts/details.tsx | 6 +- .../+service-accounts/secret.tsx | 4 +- .../+service-accounts/view.tsx | 4 +- .../+workloads-cronjobs/cronjob-details.tsx | 6 +- .../cronjob-trigger-dialog.tsx | 6 +- .../+workloads-cronjobs/cronjobs.tsx | 4 +- .../daemonset-details.tsx | 8 +- .../+workloads-daemonsets/daemonsets.tsx | 4 +- .../deployment-details.tsx | 8 +- .../deployment-replicasets.tsx | 4 +- .../deployment-scale-dialog.tsx | 6 +- .../+workloads-deployments/deployments.tsx | 4 +- .../+workloads-jobs/job-details.tsx | 8 +- .../components/+workloads-jobs/jobs.tsx | 4 +- .../overview-workload-status.tsx | 4 +- .../+workloads-overview/overview.tsx | 8 +- .../+workloads-pods/pod-container-env.tsx | 6 +- .../+workloads-pods/pod-container-port.tsx | 8 +- .../pod-details-affinities.tsx | 4 +- .../+workloads-pods/pod-details-container.tsx | 6 +- .../+workloads-pods/pod-details-list.tsx | 7 +- .../+workloads-pods/pod-details-secrets.tsx | 6 +- .../+workloads-pods/pod-details-statuses.tsx | 4 +- .../pod-details-tolerations.tsx | 4 +- .../+workloads-pods/pod-details.tsx | 6 +- .../+workloads-pods/pod-tolerations.tsx | 4 +- .../components/+workloads-pods/pods.tsx | 4 +- .../replicaset-details.tsx | 8 +- .../replicaset-scale-dialog.tsx | 6 +- .../+workloads-replicasets/replicasets.tsx | 4 +- .../statefulset-details.tsx | 8 +- .../statefulset-scale-dialog.tsx | 6 +- .../+workloads-statefulsets/statefulsets.tsx | 4 +- src/renderer/components/chart/bar-chart.tsx | 6 +- src/renderer/components/chart/pie-chart.tsx | 4 +- .../cluster-manager/cluster-status.tsx | 6 +- .../cluster-manager/cluster-view.tsx | 6 +- .../cluster-accessible-namespaces.tsx | 6 +- .../components/cluster-icon-settings.tsx | 4 +- .../components/cluster-kubeconfig.tsx | 4 +- .../cluster-local-terminal-settings.tsx | 4 +- .../components/cluster-metrics-setting.tsx | 6 +- .../components/cluster-name-setting.tsx | 6 +- .../components/cluster-node-shell-setting.tsx | 6 +- .../components/cluster-prometheus-setting.tsx | 6 +- .../components/cluster-proxy-setting.tsx | 6 +- .../components/cluster-show-metrics.tsx | 6 +- .../delete-cluster-dialog.tsx | 10 +- .../components/dialog/logs-dialog.tsx | 4 +- .../components/dock/create-resource/view.tsx | 8 +- src/renderer/components/dock/dock-tabs.tsx | 4 +- src/renderer/components/dock/dock.tsx | 6 +- .../components/dock/edit-resource/view.tsx | 8 +- src/renderer/components/dock/info-panel.tsx | 10 +- .../components/dock/install-chart/view.tsx | 8 +- .../components/dock/terminal/dock-tab.tsx | 6 +- .../components/dock/terminal/view.tsx | 6 +- .../components/dock/upgrade-chart/view.tsx | 8 +- .../editable-list/editable-list.tsx | 8 +- .../error-boundary/error-boundary.tsx | 4 +- .../components/file-picker/file-picker.tsx | 8 +- .../components/hotbar/hotbar-cell.tsx | 4 +- .../components/hotbar/hotbar-entity-icon.tsx | 6 +- .../components/hotbar/hotbar-icon.tsx | 4 +- .../components/hotbar/hotbar-menu.tsx | 6 +- src/renderer/components/input/file-input.tsx | 4 +- src/renderer/components/input/input.tsx | 2 +- .../components/input/search-input.tsx | 6 +- .../components/item-object-list/content.tsx | 2 +- .../item-object-list/filter-icon.tsx | 4 +- .../item-object-list/page-filters-list.tsx | 6 +- .../kube-object-details.tsx | 4 +- .../kube-object-status-icon.tsx | 4 +- .../kubeconfig-dialog/kubeconfig-dialog.tsx | 6 +- .../components/layout/close-button.tsx | 4 +- .../components/layout/main-layout.tsx | 6 +- .../components/layout/sidebar-item.tsx | 2 +- src/renderer/components/layout/sidebar.tsx | 2 +- src/renderer/components/layout/sub-title.tsx | 4 +- src/renderer/components/list/list.tsx | 4 +- .../components/locale-date/locale-date.tsx | 4 +- .../markdown-viewer/markdown-viewer.tsx | 6 +- src/renderer/components/no-items/no-items.tsx | 4 +- .../components/render-delay/render-delay.tsx | 6 +- .../resizing-anchor/resizing-anchor.tsx | 6 +- .../resource-metrics-text.tsx | 14 +- .../resource-metrics/resource-metrics.tsx | 14 +- .../components/scroll-spy/scroll-spy.tsx | 4 +- src/renderer/components/switch/switch.tsx | 4 +- src/renderer/components/switch/switcher.tsx | 4 +- src/renderer/components/table/react-table.tsx | 4 +- src/renderer/components/table/table.tsx | 5 +- .../components/tree-view/tree-view.tsx | 4 +- .../components/virtual-list/virtual-list.tsx | 10 +- src/renderer/components/wizard/wizard.tsx | 53 ++++--- .../port-forward/port-forward-dialog.tsx | 8 +- .../utils/__tests__/storageHelper.test.ts | 4 +- src/renderer/utils/cssNames.ts | 4 +- 197 files changed, 630 insertions(+), 634 deletions(-) delete mode 100644 src/common/utils/types.ts diff --git a/.eslintrc.js b/.eslintrc.js index 0c0eeef2c2..062313f68d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -146,6 +146,29 @@ module.exports = { "named": "never", "asyncArrow": "always", }], + "@typescript-eslint/naming-convention": ["error", + { + "selector": "interface", + "format": ["PascalCase"], + "leadingUnderscore": "forbid", + "trailingUnderscore": "forbid", + "custom": { + "regex": "^Props$", + "match": false, + }, + }, + { + "selector": "typeAlias", + "format": ["PascalCase"], + "leadingUnderscore": "forbid", + "trailingUnderscore": "forbid", + "custom": { + "regex": "^(Props|State)$", + "match": false, + }, + }, + ], + "@typescript-eslint/consistent-type-definitions": ["error", "interface"], "unused-imports/no-unused-imports-ts": process.env.PROD === "true" ? "error" : "warn", "unused-imports/no-unused-vars-ts": [ "warn", { diff --git a/docs/extensions/guides/renderer-extension.md b/docs/extensions/guides/renderer-extension.md index 67624f1952..e9439fb0a9 100644 --- a/docs/extensions/guides/renderer-extension.md +++ b/docs/extensions/guides/renderer-extension.md @@ -724,11 +724,11 @@ const { type Pod = Renderer.K8sApi.Pod; -interface Props { +interface PodsDetailsListProps { pods?: Pod[]; } -export class PodsDetailsList extends React.Component { +export class PodsDetailsList extends React.Component { getTableRow = (pod: Pod) => { return ( diff --git a/docs/extensions/guides/resource-stack.md b/docs/extensions/guides/resource-stack.md index 7be024e389..3c3111d5a4 100644 --- a/docs/extensions/guides/resource-stack.md +++ b/docs/extensions/guides/resource-stack.md @@ -109,13 +109,13 @@ To allow the end-user to control the life cycle of this cluster feature the foll } } = Renderer; - interface Props { + interface ExampleClusterFeatureSettingsProps { cluster: Common.Catalog.KubernetesCluster; } @observer - export class ExampleClusterFeatureSettings extends React.Component { - constructor(props: Props) { + export class ExampleClusterFeatureSettings extends React.Component { + constructor(props: ExampleClusterFeatureSettingsProps) { super(props); makeObservable(this); } diff --git a/extensions/metrics-cluster-feature/src/metrics-settings.tsx b/extensions/metrics-cluster-feature/src/metrics-settings.tsx index f309ff13cc..706feaedba 100644 --- a/extensions/metrics-cluster-feature/src/metrics-settings.tsx +++ b/extensions/metrics-cluster-feature/src/metrics-settings.tsx @@ -17,13 +17,13 @@ const { }, } = Renderer; -interface Props { +export interface MetricsSettingsProps { cluster: Common.Catalog.KubernetesCluster; } @observer -export class MetricsSettings extends React.Component { - constructor(props: Props) { +export class MetricsSettings extends React.Component { + constructor(props: MetricsSettingsProps) { super(props); makeObservable(this); } diff --git a/src/common/__tests__/kube-helpers.test.ts b/src/common/__tests__/kube-helpers.test.ts index 80c5b88ec3..26a64c3995 100644 --- a/src/common/__tests__/kube-helpers.test.ts +++ b/src/common/__tests__/kube-helpers.test.ts @@ -43,7 +43,7 @@ users: command: foo `; -interface kubeconfig { +interface Kubeconfig { apiVersion: string; clusters: [{ name: string; @@ -66,7 +66,7 @@ interface kubeconfig { preferences: {}; } -let mockKubeConfig: kubeconfig; +let mockKubeConfig: Kubeconfig; describe("kube helpers", () => { describe("validateKubeconfig", () => { diff --git a/src/common/app-event-bus/event-bus.ts b/src/common/app-event-bus/event-bus.ts index 3291a7674f..71a27e1a42 100644 --- a/src/common/app-event-bus/event-bus.ts +++ b/src/common/app-event-bus/event-bus.ts @@ -5,10 +5,10 @@ import { EventEmitter } from "../event-emitter"; -export type AppEvent = { +export interface AppEvent { name: string; action: string; params?: object; -}; +} export const appEventBus = new EventEmitter<[AppEvent]>(); diff --git a/src/common/catalog-entities/web-link.ts b/src/common/catalog-entities/web-link.ts index a014b22aa4..52b5f20cd6 100644 --- a/src/common/catalog-entities/web-link.ts +++ b/src/common/catalog-entities/web-link.ts @@ -14,9 +14,9 @@ export interface WebLinkStatus extends CatalogEntityStatus { phase: WebLinkStatusPhase; } -export type WebLinkSpec = { +export interface WebLinkSpec { url: string; -}; +} export class WebLink extends CatalogEntity { public static readonly apiVersion = "entity.k8slens.dev/v1alpha1"; diff --git a/src/common/k8s-api/endpoints/crd.api.ts b/src/common/k8s-api/endpoints/crd.api.ts index 2f330feaf9..98f78a0716 100644 --- a/src/common/k8s-api/endpoints/crd.api.ts +++ b/src/common/k8s-api/endpoints/crd.api.ts @@ -9,12 +9,12 @@ import { crdResourcesURL } from "../../routes"; import { isClusterPageContext } from "../../utils/cluster-id-url-parsing"; import type { KubeJsonApiData } from "../kube-json-api"; -type AdditionalPrinterColumnsCommon = { +interface AdditionalPrinterColumnsCommon { name: string; type: "integer" | "number" | "string" | "boolean" | "date"; priority: number; description: string; -}; +} export type AdditionalPrinterColumnsV1 = AdditionalPrinterColumnsCommon & { jsonPath: string; diff --git a/src/common/k8s-api/kube-api.ts b/src/common/k8s-api/kube-api.ts index b81b72eae4..151e89f03d 100644 --- a/src/common/k8s-api/kube-api.ts +++ b/src/common/k8s-api/kube-api.ts @@ -216,7 +216,7 @@ export function ensureObjectSelfLink(api: KubeApi, object: KubeJsonA export type KubeApiWatchCallback = (data: IKubeWatchEvent, error: any) => void; -export type KubeApiWatchOptions = { +export interface KubeApiWatchOptions { namespace: string; callback?: KubeApiWatchCallback; abortController?: AbortController; @@ -225,7 +225,7 @@ export type KubeApiWatchOptions = { // timeout in seconds timeout?: number; -}; +} export type KubeApiPatchType = "merge" | "json" | "strategic"; diff --git a/src/common/utils/index.ts b/src/common/utils/index.ts index d9130cbb05..0ecb4bc71e 100644 --- a/src/common/utils/index.ts +++ b/src/common/utils/index.ts @@ -40,9 +40,10 @@ export * from "./splitArray"; export * from "./tar"; export * from "./toJS"; export * from "./type-narrowing"; -export * from "./types"; export * from "./wait-for-path"; +export type { Tuple } from "./tuple"; + import * as iter from "./iter"; import * as array from "./array"; import * as tuple from "./tuple"; diff --git a/src/common/utils/singleton.ts b/src/common/utils/singleton.ts index aff4970be1..5f1172b660 100644 --- a/src/common/utils/singleton.ts +++ b/src/common/utils/singleton.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -type StaticThis = { new(...args: R): T }; +interface StaticThis { new(...args: R): T } export class Singleton { private static instances = new WeakMap(); diff --git a/src/common/utils/tuple.ts b/src/common/utils/tuple.ts index 9c86dea277..17586dda33 100644 --- a/src/common/utils/tuple.ts +++ b/src/common/utils/tuple.ts @@ -8,8 +8,14 @@ import * as array from "../utils/array"; /** * A strict N-tuple of type T */ -export type Tuple = N extends N ? number extends N ? T[] : _TupleOf : never; -type _TupleOf = R["length"] extends N ? R : _TupleOf; +export type Tuple = N extends N + ? number extends N + ? T[] + : TupleOfImpl + : never; +type TupleOfImpl = R["length"] extends N + ? R + : TupleOfImpl; /** * Iterates over `sources` yielding full tuples until one of the tuple arrays diff --git a/src/common/utils/types.ts b/src/common/utils/types.ts deleted file mode 100644 index f5c6a6b555..0000000000 --- a/src/common/utils/types.ts +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ - -/** - * An N length tuple of T - */ -export type Tuple = N extends N ? number extends N ? T[] : _TupleOf : never; -type _TupleOf = R["length"] extends N ? R : _TupleOf; diff --git a/src/extensions/renderer-api/kube-object-status.ts b/src/extensions/renderer-api/kube-object-status.ts index abc2354ca1..200bf35b5d 100644 --- a/src/extensions/renderer-api/kube-object-status.ts +++ b/src/extensions/renderer-api/kube-object-status.ts @@ -3,11 +3,11 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -export type KubeObjectStatus = { +export interface KubeObjectStatus { level: KubeObjectStatusLevel; text: string; timestamp?: string; -}; +} export enum KubeObjectStatusLevel { INFO = 1, diff --git a/src/main/cluster-detectors/base-cluster-detector.ts b/src/main/cluster-detectors/base-cluster-detector.ts index a29fae2adc..a5a2564ab4 100644 --- a/src/main/cluster-detectors/base-cluster-detector.ts +++ b/src/main/cluster-detectors/base-cluster-detector.ts @@ -7,10 +7,10 @@ import type { RequestPromiseOptions } from "request-promise-native"; import type { Cluster } from "../../common/cluster/cluster"; import { k8sRequest } from "../k8s-request"; -export type ClusterDetectionResult = { +export interface ClusterDetectionResult { value: string | number | boolean; accuracy: number; -}; +} export class BaseClusterDetector { key: string; diff --git a/src/main/lens-binary.ts b/src/main/lens-binary.ts index 2b8b5c27d3..63841585fd 100644 --- a/src/main/lens-binary.ts +++ b/src/main/lens-binary.ts @@ -11,13 +11,13 @@ import * as tar from "tar"; import { isWindows } from "../common/vars"; import type winston from "winston"; -export type LensBinaryOpts = { +export interface LensBinaryOpts { version: string; baseDir: string; originalBinaryName: string; newBinaryName?: string; requestOpts?: request.Options; -}; +} export class LensBinary { diff --git a/src/main/prometheus/provider-registry.ts b/src/main/prometheus/provider-registry.ts index 36d326e161..21c64d7a67 100644 --- a/src/main/prometheus/provider-registry.ts +++ b/src/main/prometheus/provider-registry.ts @@ -7,12 +7,12 @@ import type { CoreV1Api } from "@kubernetes/client-node"; import { inspect } from "util"; import { Singleton } from "../../common/utils"; -export type PrometheusService = { +export interface PrometheusService { id: string; namespace: string; service: string; port: number; -}; +} export abstract class PrometheusProvider { abstract readonly id: string; diff --git a/src/renderer/components/+catalog/catalog-add-button.tsx b/src/renderer/components/+catalog/catalog-add-button.tsx index 3034abd97a..8d5daa6025 100644 --- a/src/renderer/components/+catalog/catalog-add-button.tsx +++ b/src/renderer/components/+catalog/catalog-add-button.tsx @@ -15,9 +15,9 @@ import { EventEmitter } from "events"; import { navigate } from "../../navigation"; import { catalogCategoryRegistry } from "../../api/catalog-category-registry"; -export type CatalogAddButtonProps = { +export interface CatalogAddButtonProps { category: CatalogCategory; -}; +} type CategoryId = string; diff --git a/src/renderer/components/+catalog/catalog-entity-details.tsx b/src/renderer/components/+catalog/catalog-entity-details.tsx index 0603821322..569e6b60c1 100644 --- a/src/renderer/components/+catalog/catalog-entity-details.tsx +++ b/src/renderer/components/+catalog/catalog-entity-details.tsx @@ -16,14 +16,14 @@ import { cssNames } from "../../utils"; import { Avatar } from "../avatar"; import { getLabelBadges } from "./helpers"; -interface Props { +export interface CatalogEntityDetailsProps { entity: T; hideDetails(): void; onRun: () => void; } @observer -export class CatalogEntityDetails extends Component> { +export class CatalogEntityDetails extends Component> { categoryIcon(category: CatalogCategory) { if (Icon.isSvg(category.metadata.icon)) { return ; diff --git a/src/renderer/components/+catalog/catalog-menu.tsx b/src/renderer/components/+catalog/catalog-menu.tsx index ccd347aefe..2cc543c25f 100644 --- a/src/renderer/components/+catalog/catalog-menu.tsx +++ b/src/renderer/components/+catalog/catalog-menu.tsx @@ -15,10 +15,10 @@ import { cssNames } from "../../utils"; import type { CatalogCategory } from "../../api/catalog-entity"; import { observer } from "mobx-react"; -type Props = { +export interface CatalogMenuProps { activeItem: string; onItemClick: (id: string) => void; -}; +} function getCategories() { return catalogCategoryRegistry.filteredItems; @@ -42,7 +42,7 @@ function Item(props: TreeItemProps) { ); } -export const CatalogMenu = observer((props: Props) => { +export const CatalogMenu = observer((props: CatalogMenuProps) => { return ( // Overwrite Material UI styles with injectFirst https://material-ui.com/guides/interoperability/#controlling-priority-4 diff --git a/src/renderer/components/+catalog/catalog.tsx b/src/renderer/components/+catalog/catalog.tsx index 0287925e32..359e538ac5 100644 --- a/src/renderer/components/+catalog/catalog.tsx +++ b/src/renderer/components/+catalog/catalog.tsx @@ -37,7 +37,7 @@ import type { RegisteredCustomCategoryViewDecl } from "./custom-views.injectable import customCategoryViewsInjectable from "./custom-views.injectable"; import type { CustomCategoryViewComponents } from "./custom-views"; -interface Props extends RouteComponentProps {} +export interface CatalogProps extends RouteComponentProps {} interface Dependencies { catalogPreviousActiveTabStorage: { set: (value: string ) => void }; @@ -47,11 +47,11 @@ interface Dependencies { } @observer -class NonInjectedCatalog extends React.Component { +class NonInjectedCatalog extends React.Component { @observable private contextMenu: CatalogEntityContextMenuContext; @observable activeTab?: string; - constructor(props: Props & Dependencies) { + constructor(props: CatalogProps & Dependencies) { super(props); makeObservable(this); } @@ -305,7 +305,7 @@ class NonInjectedCatalog extends React.Component { } } -export const Catalog = withInjectables( NonInjectedCatalog, { +export const Catalog = withInjectables( NonInjectedCatalog, { getProps: (di, props) => ({ catalogEntityStore: di.inject(catalogEntityStoreInjectable), catalogPreviousActiveTabStorage: di.inject(catalogPreviousActiveTabStorageInjectable), diff --git a/src/renderer/components/+cluster/cluster-issues.tsx b/src/renderer/components/+cluster/cluster-issues.tsx index 3939ea7de6..b0218bbcfb 100644 --- a/src/renderer/components/+cluster/cluster-issues.tsx +++ b/src/renderer/components/+cluster/cluster-issues.tsx @@ -20,7 +20,7 @@ import { ThemeStore } from "../../theme.store"; import { kubeSelectedUrlParam, toggleDetails } from "../kube-detail-params"; import { apiManager } from "../../../common/k8s-api/api-manager"; -interface Props { +export interface ClusterIssuesProps { className?: string; } @@ -39,14 +39,14 @@ enum sortBy { } @observer -export class ClusterIssues extends React.Component { +export class ClusterIssues extends React.Component { private sortCallbacks = { [sortBy.type]: (warning: IWarning) => warning.kind, [sortBy.object]: (warning: IWarning) => warning.getName(), [sortBy.age]: (warning: IWarning) => warning.timeDiffFromNow, }; - constructor(props: Props) { + constructor(props: ClusterIssuesProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+cluster/cluster-no-metrics.tsx b/src/renderer/components/+cluster/cluster-no-metrics.tsx index 09494f56dd..c8638c2602 100644 --- a/src/renderer/components/+cluster/cluster-no-metrics.tsx +++ b/src/renderer/components/+cluster/cluster-no-metrics.tsx @@ -7,11 +7,11 @@ import React from "react"; import { Icon } from "../icon"; import { cssNames } from "../../utils"; -interface Props { +export interface ClusterNoMetricsProps { className: string; } -export function ClusterNoMetrics({ className }: Props) { +export function ClusterNoMetrics({ className }: ClusterNoMetricsProps) { return (
diff --git a/src/renderer/components/+config-autoscalers/hpa.tsx b/src/renderer/components/+config-autoscalers/hpa.tsx index 34c57729fa..f0b0e98265 100644 --- a/src/renderer/components/+config-autoscalers/hpa.tsx +++ b/src/renderer/components/+config-autoscalers/hpa.tsx @@ -27,11 +27,11 @@ enum columnId { status = "status", } -interface Props extends RouteComponentProps { +export interface HorizontalPodAutoscalersProps extends RouteComponentProps { } @observer -export class HorizontalPodAutoscalers extends React.Component { +export class HorizontalPodAutoscalers extends React.Component { getTargets(hpa: HorizontalPodAutoscaler) { const metrics = hpa.getMetrics(); diff --git a/src/renderer/components/+config-limit-ranges/limit-range-details.tsx b/src/renderer/components/+config-limit-ranges/limit-range-details.tsx index 01255b7dc7..8f8c7d455e 100644 --- a/src/renderer/components/+config-limit-ranges/limit-range-details.tsx +++ b/src/renderer/components/+config-limit-ranges/limit-range-details.tsx @@ -14,7 +14,7 @@ import { DrawerItem } from "../drawer/drawer-item"; import { Badge } from "../badge"; import logger from "../../../common/logger"; -interface Props extends KubeObjectDetailsProps { +export interface LimitRangeDetailsProps extends KubeObjectDetailsProps { } function renderLimit(limit: LimitRangeItem, part: LimitPart, resource: Resource) { @@ -52,7 +52,7 @@ function renderLimitDetails(limits: LimitRangeItem[], resources: Resource[]) { } @observer -export class LimitRangeDetails extends React.Component { +export class LimitRangeDetails extends React.Component { render() { const { object: limitRange } = this.props; diff --git a/src/renderer/components/+config-limit-ranges/limit-ranges.tsx b/src/renderer/components/+config-limit-ranges/limit-ranges.tsx index 814b63ecad..db5c98e0d5 100644 --- a/src/renderer/components/+config-limit-ranges/limit-ranges.tsx +++ b/src/renderer/components/+config-limit-ranges/limit-ranges.tsx @@ -19,11 +19,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface LimitRangesProps extends RouteComponentProps { } @observer -export class LimitRanges extends React.Component { +export class LimitRanges extends React.Component { render() { return ( { +export interface ConfigMapDetailsProps extends KubeObjectDetailsProps { } @observer -export class ConfigMapDetails extends React.Component { +export class ConfigMapDetails extends React.Component { @observable isSaving = false; @observable data = observable.map(); - constructor(props: Props) { + constructor(props: ConfigMapDetailsProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+config-maps/config-maps.tsx b/src/renderer/components/+config-maps/config-maps.tsx index 8edbb6833b..7d206f33d7 100644 --- a/src/renderer/components/+config-maps/config-maps.tsx +++ b/src/renderer/components/+config-maps/config-maps.tsx @@ -20,11 +20,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface ConfigMapsProps extends RouteComponentProps { } @observer -export class ConfigMaps extends React.Component { +export class ConfigMaps extends React.Component { render() { return ( { +export interface PodDisruptionBudgetDetailsProps extends KubeObjectDetailsProps { } @observer -export class PodDisruptionBudgetDetails extends React.Component { +export class PodDisruptionBudgetDetails extends React.Component { render() { const { object: pdb } = this.props; diff --git a/src/renderer/components/+config-pod-disruption-budgets/pod-disruption-budgets.tsx b/src/renderer/components/+config-pod-disruption-budgets/pod-disruption-budgets.tsx index 2cf09db7a1..5556f957a1 100644 --- a/src/renderer/components/+config-pod-disruption-budgets/pod-disruption-budgets.tsx +++ b/src/renderer/components/+config-pod-disruption-budgets/pod-disruption-budgets.tsx @@ -23,11 +23,11 @@ enum columnId { age = "age", } -interface Props extends KubeObjectDetailsProps { +export interface PodDisruptionBudgetsProps extends KubeObjectDetailsProps { } @observer -export class PodDisruptionBudgets extends React.Component { +export class PodDisruptionBudgets extends React.Component { render() { return ( { +export class AddQuotaDialog extends React.Component { static defaultQuotas: IResourceQuotaValues = { "limits.cpu": "", "limits.memory": "", @@ -58,7 +58,7 @@ export class AddQuotaDialog extends React.Component { @observable namespace = this.defaultNamespace; @observable quotas = AddQuotaDialog.defaultQuotas; - constructor(props: Props) { + constructor(props: AddQuotaDialogProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+config-resource-quotas/resource-quota-details.tsx b/src/renderer/components/+config-resource-quotas/resource-quota-details.tsx index 2e4c91b677..363ba75662 100644 --- a/src/renderer/components/+config-resource-quotas/resource-quota-details.tsx +++ b/src/renderer/components/+config-resource-quotas/resource-quota-details.tsx @@ -16,7 +16,7 @@ import { Table, TableCell, TableHead, TableRow } from "../table"; import { KubeObjectMeta } from "../kube-object-meta"; import logger from "../../../common/logger"; -interface Props extends KubeObjectDetailsProps { +export interface ResourceQuotaDetailsProps extends KubeObjectDetailsProps { } function transformUnit(name: string, value: string): number { @@ -58,7 +58,7 @@ function renderQuotas(quota: ResourceQuota): JSX.Element[] { } @observer -export class ResourceQuotaDetails extends React.Component { +export class ResourceQuotaDetails extends React.Component { render() { const { object: quota } = this.props; diff --git a/src/renderer/components/+config-resource-quotas/resource-quotas.tsx b/src/renderer/components/+config-resource-quotas/resource-quotas.tsx index de7ef7a818..823eb8ced9 100644 --- a/src/renderer/components/+config-resource-quotas/resource-quotas.tsx +++ b/src/renderer/components/+config-resource-quotas/resource-quotas.tsx @@ -20,11 +20,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface ResourceQuotasProps extends RouteComponentProps { } @observer -export class ResourceQuotas extends React.Component { +export class ResourceQuotas extends React.Component { render() { return ( <> diff --git a/src/renderer/components/+config-secrets/add-secret-dialog.tsx b/src/renderer/components/+config-secrets/add-secret-dialog.tsx index 56ed65013e..cebc953b49 100644 --- a/src/renderer/components/+config-secrets/add-secret-dialog.tsx +++ b/src/renderer/components/+config-secrets/add-secret-dialog.tsx @@ -23,7 +23,7 @@ import { Notifications } from "../notifications"; import upperFirst from "lodash/upperFirst"; import { showDetails } from "../kube-detail-params"; -interface Props extends Partial { +export interface AddSecretDialogProps extends Partial { } interface ISecretTemplateField { @@ -46,8 +46,8 @@ const dialogState = observable.object({ }); @observer -export class AddSecretDialog extends React.Component { - constructor(props: Props) { +export class AddSecretDialog extends React.Component { + constructor(props: AddSecretDialogProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+config-secrets/secret-details.tsx b/src/renderer/components/+config-secrets/secret-details.tsx index bce3022450..adb1877799 100644 --- a/src/renderer/components/+config-secrets/secret-details.tsx +++ b/src/renderer/components/+config-secrets/secret-details.tsx @@ -20,16 +20,16 @@ import { Secret } from "../../../common/k8s-api/endpoints"; import { KubeObjectMeta } from "../kube-object-meta"; import logger from "../../../common/logger"; -interface Props extends KubeObjectDetailsProps { +export interface SecretDetailsProps extends KubeObjectDetailsProps { } @observer -export class SecretDetails extends React.Component { +export class SecretDetails extends React.Component { @observable isSaving = false; @observable data: { [name: string]: string } = {}; @observable revealSecret = observable.set(); - constructor(props: Props) { + constructor(props: SecretDetailsProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+config-secrets/secrets.tsx b/src/renderer/components/+config-secrets/secrets.tsx index 227a9b0f51..07b737450c 100644 --- a/src/renderer/components/+config-secrets/secrets.tsx +++ b/src/renderer/components/+config-secrets/secrets.tsx @@ -24,11 +24,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface SecretsProps extends RouteComponentProps { } @observer -export class Secrets extends React.Component { +export class Secrets extends React.Component { render() { return ( <> diff --git a/src/renderer/components/+custom-resources/crd-details.tsx b/src/renderer/components/+custom-resources/crd-details.tsx index 788178544d..20961de66c 100644 --- a/src/renderer/components/+custom-resources/crd-details.tsx +++ b/src/renderer/components/+custom-resources/crd-details.tsx @@ -18,11 +18,11 @@ import { KubeObjectMeta } from "../kube-object-meta"; import { MonacoEditor } from "../monaco-editor"; import logger from "../../../common/logger"; -interface Props extends KubeObjectDetailsProps { +export interface CRDDetailsProps extends KubeObjectDetailsProps { } @observer -export class CRDDetails extends React.Component { +export class CRDDetails extends React.Component { render() { const { object: crd } = this.props; diff --git a/src/renderer/components/+custom-resources/crd-list.tsx b/src/renderer/components/+custom-resources/crd-list.tsx index 1806b99926..a14b472d2f 100644 --- a/src/renderer/components/+custom-resources/crd-list.tsx +++ b/src/renderer/components/+custom-resources/crd-list.tsx @@ -32,7 +32,7 @@ enum columnId { } @observer -export class CrdList extends React.Component { +export class CustomResourceDefinitions extends React.Component { constructor(props: {}) { super(props); makeObservable(this); diff --git a/src/renderer/components/+custom-resources/crd-resource-details.tsx b/src/renderer/components/+custom-resources/crd-resource-details.tsx index 8d99b141e5..ba69b456b5 100644 --- a/src/renderer/components/+custom-resources/crd-resource-details.tsx +++ b/src/renderer/components/+custom-resources/crd-resource-details.tsx @@ -19,7 +19,7 @@ import { parseJsonPath } from "../../utils/jsonPath"; import { KubeObject, KubeObjectMetadata, KubeObjectStatus } from "../../../common/k8s-api/kube-object"; import logger from "../../../common/logger"; -interface Props extends KubeObjectDetailsProps { +export interface CustomResourceDetailsProps extends KubeObjectDetailsProps { crd: CustomResourceDefinition; } @@ -44,7 +44,7 @@ function convertSpecValue(value: any): any { } @observer -export class CrdResourceDetails extends React.Component { +export class CustomResourceDetails extends React.Component { renderAdditionalColumns(resource: KubeObject, columns: AdditionalPrinterColumnsV1[]) { return columns.map(({ name, jsonPath: jp }) => ( diff --git a/src/renderer/components/+custom-resources/crd-resources.tsx b/src/renderer/components/+custom-resources/crd-resources.tsx index 37f537ffaf..8c029e92c1 100644 --- a/src/renderer/components/+custom-resources/crd-resources.tsx +++ b/src/renderer/components/+custom-resources/crd-resources.tsx @@ -18,7 +18,7 @@ import { apiManager } from "../../../common/k8s-api/api-manager"; import { parseJsonPath } from "../../utils/jsonPath"; import type { CRDRouteParams } from "../../../common/routes"; -interface Props extends RouteComponentProps { +export interface CustomResourceDefinitionResourcesProps extends RouteComponentProps { } enum columnId { @@ -28,8 +28,8 @@ enum columnId { } @observer -export class CrdResources extends React.Component { - constructor(props: Props) { +export class CustomResourceDefinitionResources extends React.Component { + constructor(props: CustomResourceDefinitionResourcesProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+custom-resources/route.tsx b/src/renderer/components/+custom-resources/route.tsx index e3be5ff164..805d6216d6 100644 --- a/src/renderer/components/+custom-resources/route.tsx +++ b/src/renderer/components/+custom-resources/route.tsx @@ -7,13 +7,14 @@ import React from "react"; import { Redirect, Route, Switch } from "react-router"; import { TabLayout } from "../layout/tab-layout"; import { crdDefinitionsRoute, crdResourcesRoute, crdURL } from "../../../common/routes"; -import { CrdList, CrdResources } from "."; +import { CustomResourceDefinitions } from "./crd-list"; +import { CustomResourceDefinitionResources } from "./crd-resources"; export const CustomResourcesRoute = () => ( - - + + diff --git a/src/renderer/components/+entity-settings/entity-settings.tsx b/src/renderer/components/+entity-settings/entity-settings.tsx index 6bfa97195f..9b9df16acf 100644 --- a/src/renderer/components/+entity-settings/entity-settings.tsx +++ b/src/renderer/components/+entity-settings/entity-settings.tsx @@ -20,14 +20,14 @@ import { SettingLayout } from "../layout/setting-layout"; import logger from "../../../common/logger"; import { Avatar } from "../avatar"; -interface Props extends RouteComponentProps { +export interface EntitySettingsProps extends RouteComponentProps { } @observer -export class EntitySettings extends React.Component { +export class EntitySettings extends React.Component { @observable activeTab: string; - constructor(props: Props) { + constructor(props: EntitySettingsProps) { super(props); makeObservable(this); diff --git a/src/renderer/components/+events/event-details.tsx b/src/renderer/components/+events/event-details.tsx index 9df0547a21..74e711f839 100644 --- a/src/renderer/components/+events/event-details.tsx +++ b/src/renderer/components/+events/event-details.tsx @@ -19,11 +19,11 @@ import { getDetailsUrl } from "../kube-detail-params"; import { apiManager } from "../../../common/k8s-api/api-manager"; import logger from "../../../common/logger"; -interface Props extends KubeObjectDetailsProps { +export interface EventDetailsProps extends KubeObjectDetailsProps { } @observer -export class EventDetails extends React.Component { +export class EventDetails extends React.Component { render() { const { object: event } = this.props; diff --git a/src/renderer/components/+events/events.tsx b/src/renderer/components/+events/events.tsx index 033189ea7d..332007e4dd 100644 --- a/src/renderer/components/+events/events.tsx +++ b/src/renderer/components/+events/events.tsx @@ -34,18 +34,18 @@ enum columnId { lastSeen = "last-seen", } -interface Props extends Partial> { +export interface EventsProps extends Partial> { className?: IClassName; compact?: boolean; compactLimit?: number; } -const defaultProps: Partial = { +const defaultProps: Partial = { compactLimit: 10, }; @observer -export class Events extends React.Component { +export class Events extends React.Component { static defaultProps = defaultProps as object; now = Date.now(); @@ -63,7 +63,7 @@ export class Events extends React.Component { [columnId.lastSeen]: event => this.now - new Date(event.lastTimestamp).getTime(), }; - constructor(props: Props) { + constructor(props: EventsProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+events/kube-event-icon.tsx b/src/renderer/components/+events/kube-event-icon.tsx index dc60b8f4f3..7b6f224847 100644 --- a/src/renderer/components/+events/kube-event-icon.tsx +++ b/src/renderer/components/+events/kube-event-icon.tsx @@ -12,17 +12,18 @@ import { eventStore } from "./event.store"; import { cssNames } from "../../utils"; import type { KubeEvent } from "../../../common/k8s-api/endpoints/events.api"; -interface Props { +export interface KubeEventIconProps { object: KubeObject; showWarningsOnly?: boolean; filterEvents?: (events: KubeEvent[]) => KubeEvent[]; } -const defaultProps: Partial = { + +const defaultProps: Partial = { showWarningsOnly: true, }; -export class KubeEventIcon extends React.Component { +export class KubeEventIcon extends React.Component { static defaultProps = defaultProps as object; render() { diff --git a/src/renderer/components/+extensions/install.tsx b/src/renderer/components/+extensions/install.tsx index b7325fec00..46ddb69835 100644 --- a/src/renderer/components/+extensions/install.tsx +++ b/src/renderer/components/+extensions/install.tsx @@ -17,7 +17,7 @@ import extensionInstallationStateStoreInjectable from "../../../extensions/extension-installation-state-store/extension-installation-state-store.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; -interface Props { +export interface InstallProps { installPath: string; supportedFormats: string[]; onChange: (path: string) => void; @@ -42,7 +42,7 @@ const installInputValidator: InputValidator = { ), }; -const NonInjectedInstall: React.FC = ({ +const NonInjectedInstall: React.FC = ({ installPath, supportedFormats, onChange, @@ -99,7 +99,7 @@ const NonInjectedInstall: React.FC = ({ ); -export const Install = withInjectables( +export const Install = withInjectables( observer(NonInjectedInstall), { getProps: (di, props) => ({ diff --git a/src/renderer/components/+extensions/installed-extensions.tsx b/src/renderer/components/+extensions/installed-extensions.tsx index 6780a0df3a..768253008b 100644 --- a/src/renderer/components/+extensions/installed-extensions.tsx +++ b/src/renderer/components/+extensions/installed-extensions.tsx @@ -25,7 +25,7 @@ import extensionInstallationStateStoreInjectable from "../../../extensions/extension-installation-state-store/extension-installation-state-store.injectable"; import type { ExtensionInstallationStateStore } from "../../../extensions/extension-installation-state-store/extension-installation-state-store"; -interface Props { +export interface InstalledExtensionsProps { extensions: InstalledExtension[]; enable: (id: LensExtensionId) => void; disable: (id: LensExtensionId) => void; @@ -45,7 +45,7 @@ function getStatus(extension: InstalledExtension) { return extension.isEnabled ? "Enabled" : "Disabled"; } -const NonInjectedInstalledExtensions : React.FC = (({ extensionDiscovery, extensionInstallationStateStore, extensions, uninstall, enable, disable }) => { +const NonInjectedInstalledExtensions = observer(({ extensionDiscovery, extensionInstallationStateStore, extensions, uninstall, enable, disable }: Dependencies & InstalledExtensionsProps) => { const filters = [ (extension: InstalledExtension) => extension.manifest.name, (extension: InstalledExtension) => getStatus(extension), @@ -175,15 +175,10 @@ const NonInjectedInstalledExtensions : React.FC = (({ exte ); }); -export const InstalledExtensions = withInjectables( - observer(NonInjectedInstalledExtensions), - - { - getProps: (di, props) => ({ - extensionDiscovery: di.inject(extensionDiscoveryInjectable), - extensionInstallationStateStore: di.inject(extensionInstallationStateStoreInjectable), - - ...props, - }), - }, -); +export const InstalledExtensions = withInjectables(NonInjectedInstalledExtensions, { + getProps: (di, props) => ({ + extensionDiscovery: di.inject(extensionDiscoveryInjectable), + extensionInstallationStateStore: di.inject(extensionInstallationStateStoreInjectable), + ...props, + }), +}); diff --git a/src/renderer/components/+extensions/notice.tsx b/src/renderer/components/+extensions/notice.tsx index 6f8fcd7efe..31a6170fd7 100644 --- a/src/renderer/components/+extensions/notice.tsx +++ b/src/renderer/components/+extensions/notice.tsx @@ -7,11 +7,11 @@ import styles from "./notice.module.scss"; import React, { DOMAttributes } from "react"; import { cssNames } from "../../utils"; -interface Props extends DOMAttributes { +export interface NoticeProps extends DOMAttributes { className?: string; } -export function Notice(props: Props) { +export function Notice(props: NoticeProps) { return (
{props.children} diff --git a/src/renderer/components/+helm-charts/helm-chart-details.tsx b/src/renderer/components/+helm-charts/helm-chart-details.tsx index 6b89b4579c..e5048d64fa 100644 --- a/src/renderer/components/+helm-charts/helm-chart-details.tsx +++ b/src/renderer/components/+helm-charts/helm-chart-details.tsx @@ -21,7 +21,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import createInstallChartTabInjectable from "../dock/install-chart/create-install-chart-tab.injectable"; import { Notifications } from "../notifications"; -interface Props { +export interface HelmChartDetailsProps { chart: HelmChart; hideDetails(): void; } @@ -37,14 +37,14 @@ interface Dependencies { } @observer -class NonInjectedHelmChartDetails extends Component { +class NonInjectedHelmChartDetails extends Component { @observable chartVersions: HelmChart[]; @observable selectedChart?: HelmChart; @observable readme?: string; private abortController?: AbortController; - constructor(props: Props & Dependencies) { + constructor(props: HelmChartDetailsProps & Dependencies) { super(props); makeObservable(this); } @@ -197,7 +197,7 @@ class NonInjectedHelmChartDetails extends Component { } } -export const HelmChartDetails = withInjectables( +export const HelmChartDetails = withInjectables( NonInjectedHelmChartDetails, { diff --git a/src/renderer/components/+helm-charts/helm-charts.tsx b/src/renderer/components/+helm-charts/helm-charts.tsx index 0665416323..9cf8c81482 100644 --- a/src/renderer/components/+helm-charts/helm-charts.tsx +++ b/src/renderer/components/+helm-charts/helm-charts.tsx @@ -24,11 +24,11 @@ enum columnId { repo = "repo", } -interface Props extends RouteComponentProps { +export interface HelmChartsProps extends RouteComponentProps { } @observer -export class HelmCharts extends Component { +export class HelmCharts extends Component { componentDidMount() { helmChartStore.loadAll(); } diff --git a/src/renderer/components/+helm-releases/release-details/release-details.tsx b/src/renderer/components/+helm-releases/release-details/release-details.tsx index 143f9d843c..6a2a71a8fd 100644 --- a/src/renderer/components/+helm-releases/release-details/release-details.tsx +++ b/src/renderer/components/+helm-releases/release-details/release-details.tsx @@ -34,7 +34,7 @@ import releaseDetailsInjectable from "./release-details.injectable"; import releaseValuesInjectable from "./release-values.injectable"; import userSuppliedValuesAreShownInjectable from "./user-supplied-values-are-shown.injectable"; -interface Props { +export interface ReleaseDetailsProps { hideDetails(): void; } @@ -48,12 +48,12 @@ interface Dependencies { } @observer -class NonInjectedReleaseDetails extends Component { +class NonInjectedReleaseDetails extends Component { @observable saving = false; private nonSavedValues: string; - constructor(props: Props & Dependencies) { + constructor(props: ReleaseDetailsProps & Dependencies) { super(props); makeObservable(this); } @@ -261,7 +261,7 @@ class NonInjectedReleaseDetails extends Component { } } -export const ReleaseDetails = withInjectables( +export const ReleaseDetails = withInjectables( NonInjectedReleaseDetails, { diff --git a/src/renderer/components/+helm-releases/release-menu.tsx b/src/renderer/components/+helm-releases/release-menu.tsx index 679dc897fc..5852a8384e 100644 --- a/src/renderer/components/+helm-releases/release-menu.tsx +++ b/src/renderer/components/+helm-releases/release-menu.tsx @@ -14,7 +14,7 @@ import createUpgradeChartTabInjectable from "../dock/upgrade-chart/create-upgrad import releaseRollbackDialogModelInjectable from "./release-rollback-dialog-model/release-rollback-dialog-model.injectable"; import deleteReleaseInjectable from "./delete-release/delete-release.injectable"; -interface Props extends MenuActionsProps { +export interface HelmReleaseMenuProps extends MenuActionsProps { release: HelmRelease; hideDetails?(): void; } @@ -25,7 +25,7 @@ interface Dependencies { openRollbackDialog: (release: HelmRelease) => void; } -class NonInjectedHelmReleaseMenu extends React.Component { +class NonInjectedHelmReleaseMenu extends React.Component { remove = () => { return this.props.deleteRelease(this.props.release); }; @@ -79,7 +79,7 @@ class NonInjectedHelmReleaseMenu extends React.Component { } } -export const HelmReleaseMenu = withInjectables( +export const HelmReleaseMenu = withInjectables( NonInjectedHelmReleaseMenu, { diff --git a/src/renderer/components/+helm-releases/release-rollback-dialog.tsx b/src/renderer/components/+helm-releases/release-rollback-dialog.tsx index 39d32d7f5d..2698393ed6 100644 --- a/src/renderer/components/+helm-releases/release-rollback-dialog.tsx +++ b/src/renderer/components/+helm-releases/release-rollback-dialog.tsx @@ -20,7 +20,7 @@ import releaseRollbackDialogModelInjectable import type { ReleaseRollbackDialogModel } from "./release-rollback-dialog-model/release-rollback-dialog-model"; import rollbackReleaseInjectable from "./rollback-release/rollback-release.injectable"; -interface Props extends DialogProps { +export interface ReleaseRollbackDialogProps extends DialogProps { } interface Dependencies { @@ -29,12 +29,12 @@ interface Dependencies { } @observer -class NonInjectedReleaseRollbackDialog extends React.Component { +class NonInjectedReleaseRollbackDialog extends React.Component { @observable isLoading = false; @observable revision: IReleaseRevision; @observable revisions = observable.array(); - constructor(props: Props & Dependencies) { + constructor(props: ReleaseRollbackDialogProps & Dependencies) { super(props); makeObservable(this); } @@ -114,7 +114,7 @@ class NonInjectedReleaseRollbackDialog extends React.Component( +export const ReleaseRollbackDialog = withInjectables( NonInjectedReleaseRollbackDialog, { diff --git a/src/renderer/components/+helm-releases/releases.tsx b/src/renderer/components/+helm-releases/releases.tsx index 1a10303df0..2e5d9b862a 100644 --- a/src/renderer/components/+helm-releases/releases.tsx +++ b/src/renderer/components/+helm-releases/releases.tsx @@ -37,7 +37,7 @@ enum columnId { updated = "update", } -interface Props extends RouteComponentProps { +export interface HelmReleasesProps extends RouteComponentProps { } interface Dependencies { @@ -46,7 +46,7 @@ interface Dependencies { selectNamespace: (namespace: string) => void; } -class NonInjectedHelmReleases extends Component { +class NonInjectedHelmReleases extends Component { componentDidMount() { const { match: { params: { namespace }}} = this.props; @@ -223,7 +223,7 @@ class NonInjectedHelmReleases extends Component { } } -export const HelmReleases = withInjectables( +export const HelmReleases = withInjectables( NonInjectedHelmReleases, { diff --git a/src/renderer/components/+namespaces/add-namespace-dialog.tsx b/src/renderer/components/+namespaces/add-namespace-dialog.tsx index 406d4eec7a..ef82f9ca81 100644 --- a/src/renderer/components/+namespaces/add-namespace-dialog.tsx +++ b/src/renderer/components/+namespaces/add-namespace-dialog.tsx @@ -21,7 +21,7 @@ import addNamespaceDialogModelInjectable from "./add-namespace-dialog-model/add-namespace-dialog-model.injectable"; import type { NamespaceStore } from "./namespace-store/namespace.store"; -interface Props extends DialogProps { +export interface AddNamespaceDialogProps extends DialogProps { onSuccess?(ns: Namespace): void; onError?(error: any): void; } @@ -32,10 +32,10 @@ interface Dependencies { } @observer -class NonInjectedAddNamespaceDialog extends React.Component { +class NonInjectedAddNamespaceDialog extends React.Component { @observable namespace = ""; - constructor(props: Props & Dependencies) { + constructor(props: AddNamespaceDialogProps & Dependencies) { super(props); makeObservable(this); } @@ -93,7 +93,7 @@ class NonInjectedAddNamespaceDialog extends React.Component( +export const AddNamespaceDialog = withInjectables( NonInjectedAddNamespaceDialog, { diff --git a/src/renderer/components/+namespaces/namespace-details.tsx b/src/renderer/components/+namespaces/namespace-details.tsx index a2b0f12df8..9d0ce85b4f 100644 --- a/src/renderer/components/+namespaces/namespace-details.tsx +++ b/src/renderer/components/+namespaces/namespace-details.tsx @@ -29,7 +29,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import kubeWatchApiInjectable from "../../kube-watch-api/kube-watch-api.injectable"; -interface Props extends KubeObjectDetailsProps { +export interface NamespaceDetailsProps extends KubeObjectDetailsProps { } interface Dependencies { @@ -37,10 +37,10 @@ interface Dependencies { } @observer -class NonInjectedNamespaceDetails extends React.Component { +class NonInjectedNamespaceDetails extends React.Component { @observable metrics: IPodMetrics = null; - constructor(props: Props & Dependencies) { + constructor(props: NamespaceDetailsProps & Dependencies) { super(props); makeObservable(this); } @@ -132,7 +132,7 @@ class NonInjectedNamespaceDetails extends React.Component } } -export const NamespaceDetails = withInjectables( +export const NamespaceDetails = withInjectables( NonInjectedNamespaceDetails, { diff --git a/src/renderer/components/+namespaces/namespace-select-filter.tsx b/src/renderer/components/+namespaces/namespace-select-filter.tsx index 2968ad7f2e..9a216a8f9f 100644 --- a/src/renderer/components/+namespaces/namespace-select-filter.tsx +++ b/src/renderer/components/+namespaces/namespace-select-filter.tsx @@ -7,7 +7,7 @@ import "./namespace-select-filter.scss"; import React from "react"; import { observer } from "mobx-react"; -import { components, PlaceholderProps } from "react-select"; +import { components, OptionTypeBase, PlaceholderProps } from "react-select"; import { Icon } from "../icon"; import { NamespaceSelect } from "./namespace-select"; @@ -23,38 +23,33 @@ interface Dependencies { model: NamespaceSelectFilterModel; } -class NonInjectedNamespaceSelectFilter extends React.Component< - SelectProps & Dependencies -> { - render() { - return ( -
- - +this.props.model.selectedNames.has(right.value) - - +this.props.model.selectedNames.has(left.value) - } - /> -
- ); - } -} +const NonInjectedNamespaceSelectFilter = observer(({ model }: SelectProps & Dependencies) => ( +
+ + +model.selectedNames.has(right.value) + - +model.selectedNames.has(left.value) + } + /> +
+)); + const formatOptionLabelFor = (model: NamespaceSelectFilterModel) => @@ -74,54 +69,45 @@ const formatOptionLabelFor = return label; }; -export const NamespaceSelectFilter = withInjectables( - observer(NonInjectedNamespaceSelectFilter), +export const NamespaceSelectFilter = withInjectables(NonInjectedNamespaceSelectFilter, { + getProps: (di, props) => ({ + model: di.inject(namespaceSelectFilterModelInjectable), + ...props, + }), +}); - { - getProps: (di, props) => ({ - model: di.inject(namespaceSelectFilterModelInjectable), - ...props, - }), - }, -); - -type CustomPlaceholderProps = PlaceholderProps; +export interface CustomPlaceholderProps extends PlaceholderProps {} interface PlaceholderDependencies { namespaceStore: NamespaceStore; } -const NonInjectedPlaceholder = observer( - ({ namespaceStore, ...props }: CustomPlaceholderProps & PlaceholderDependencies) => { - const getPlaceholder = (): React.ReactNode => { - const namespaces = namespaceStore.contextNamespaces; +const NonInjectedPlaceholder = observer(({ namespaceStore, ...props }: CustomPlaceholderProps & PlaceholderDependencies) => { + const getPlaceholder = () => { + const namespaces = namespaceStore.contextNamespaces; - if (namespaceStore.areAllSelectedImplicitly || !namespaces.length) { - return <>All namespaces; - } + if (namespaceStore.areAllSelectedImplicitly || namespaces.length === 0) { + return "All namespaces"; + } - if (namespaces.length === 1) { - return <>Namespace: {namespaces[0]}; - } + const prefix = namespaces.length === 1 + ? "Namespace" + : "Namespaces"; - return <>Namespaces: {namespaces.join(", ")}; - }; + return `${prefix}: ${namespaces.join(", ")}`; + }; - return ( - - {getPlaceholder()} - - ); - }, + return ( + + {getPlaceholder()} + + ); +}, ); -const Placeholder = withInjectables( - NonInjectedPlaceholder, - - { - getProps: (di, props) => ({ - namespaceStore: di.inject(namespaceStoreInjectable), - ...props, - }), - }, -); +const Placeholder = withInjectables( NonInjectedPlaceholder, { + getProps: (di, props) => ({ + namespaceStore: di.inject(namespaceStoreInjectable), + ...props, + }), +}); diff --git a/src/renderer/components/+namespaces/namespace-select.tsx b/src/renderer/components/+namespaces/namespace-select.tsx index 885ddba8c0..dc51cbf0b9 100644 --- a/src/renderer/components/+namespaces/namespace-select.tsx +++ b/src/renderer/components/+namespaces/namespace-select.tsx @@ -15,14 +15,14 @@ import type { NamespaceStore } from "./namespace-store/namespace.store"; import { withInjectables } from "@ogre-tools/injectable-react"; import namespaceStoreInjectable from "./namespace-store/namespace-store.injectable"; -interface Props extends SelectProps { +export interface NamespaceSelectProps extends SelectProps { showIcons?: boolean; sort?: (a: SelectOption, b: SelectOption) => number; showAllNamespacesOption?: boolean; // show "All namespaces" option on the top (default: false) customizeOptions?(options: SelectOption[]): SelectOption[]; } -const defaultProps: Partial = { +const defaultProps: Partial = { showIcons: true, }; @@ -31,10 +31,10 @@ interface Dependencies { } @observer -class NonInjectedNamespaceSelect extends React.Component { +class NonInjectedNamespaceSelect extends React.Component { static defaultProps = defaultProps as object; - constructor(props: Props & Dependencies) { + constructor(props: NamespaceSelectProps & Dependencies) { super(props); makeObservable(this); } @@ -88,7 +88,7 @@ class NonInjectedNamespaceSelect extends React.Component { } } -export const NamespaceSelect = withInjectables( +export const NamespaceSelect = withInjectables( NonInjectedNamespaceSelect, { diff --git a/src/renderer/components/+network-endpoints/endpoint-details.tsx b/src/renderer/components/+network-endpoints/endpoint-details.tsx index 797ce59a91..5de9fdfe18 100644 --- a/src/renderer/components/+network-endpoints/endpoint-details.tsx +++ b/src/renderer/components/+network-endpoints/endpoint-details.tsx @@ -14,11 +14,11 @@ import { KubeObjectMeta } from "../kube-object-meta"; import { EndpointSubsetList } from "./endpoint-subset-list"; import logger from "../../../common/logger"; -interface Props extends KubeObjectDetailsProps { +export interface EndpointDetailsProps extends KubeObjectDetailsProps { } @observer -export class EndpointDetails extends React.Component { +export class EndpointDetails extends React.Component { render() { const { object: endpoint } = this.props; diff --git a/src/renderer/components/+network-endpoints/endpoint-subset-list.tsx b/src/renderer/components/+network-endpoints/endpoint-subset-list.tsx index 53c0a98b37..38b9dedb1e 100644 --- a/src/renderer/components/+network-endpoints/endpoint-subset-list.tsx +++ b/src/renderer/components/+network-endpoints/endpoint-subset-list.tsx @@ -14,13 +14,13 @@ import { apiManager } from "../../../common/k8s-api/api-manager"; import { Link } from "react-router-dom"; import { getDetailsUrl } from "../kube-detail-params"; -interface Props { +export interface EndpointSubsetListProps { subset: EndpointSubset; endpoint: Endpoint; } @observer -export class EndpointSubsetList extends React.Component { +export class EndpointSubsetList extends React.Component { getAddressTableRow(ip: string) { const { subset } = this.props; diff --git a/src/renderer/components/+network-endpoints/endpoints.tsx b/src/renderer/components/+network-endpoints/endpoints.tsx index 0af44470c8..f5d5b31911 100644 --- a/src/renderer/components/+network-endpoints/endpoints.tsx +++ b/src/renderer/components/+network-endpoints/endpoints.tsx @@ -20,11 +20,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface EndpointsProps extends RouteComponentProps { } @observer -export class Endpoints extends React.Component { +export class Endpoints extends React.Component { render() { return ( { +export interface IngressDetailsProps extends KubeObjectDetailsProps { } @observer -export class IngressDetails extends React.Component { +export class IngressDetails extends React.Component { @observable metrics: IIngressMetrics = null; - constructor(props: Props) { + constructor(props: IngressDetailsProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+network-ingresses/ingresses.tsx b/src/renderer/components/+network-ingresses/ingresses.tsx index c6b41d920d..21aa2ca207 100644 --- a/src/renderer/components/+network-ingresses/ingresses.tsx +++ b/src/renderer/components/+network-ingresses/ingresses.tsx @@ -21,11 +21,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface IngressesProps extends RouteComponentProps { } @observer -export class Ingresses extends React.Component { +export class Ingresses extends React.Component { render() { return ( { +export interface NetworkPoliciesProps extends RouteComponentProps { } @observer -export class NetworkPolicies extends React.Component { +export class NetworkPolicies extends React.Component { render() { return ( { +export interface NetworkPolicyDetailsProps extends KubeObjectDetailsProps { } @observer -export class NetworkPolicyDetails extends React.Component { +export class NetworkPolicyDetails extends React.Component { renderIPolicyIpBlock(ipBlock: IPolicyIpBlock | undefined) { if (!ipBlock) { return null; diff --git a/src/renderer/components/+network-port-forwards/port-forward-details.tsx b/src/renderer/components/+network-port-forwards/port-forward-details.tsx index cd69a04bce..b3eebff181 100644 --- a/src/renderer/components/+network-port-forwards/port-forward-details.tsx +++ b/src/renderer/components/+network-port-forwards/port-forward-details.tsx @@ -14,12 +14,12 @@ import { podsApi, serviceApi } from "../../../common/k8s-api/endpoints"; import { getDetailsUrl } from "../kube-detail-params"; import { PortForwardMenu } from "./port-forward-menu"; -interface Props { +export interface PortForwardDetailsProps { portForward: PortForwardItem; hideDetails(): void; } -export class PortForwardDetails extends React.Component { +export class PortForwardDetails extends React.Component { renderResourceName() { const { portForward } = this.props; diff --git a/src/renderer/components/+network-port-forwards/port-forward-menu.tsx b/src/renderer/components/+network-port-forwards/port-forward-menu.tsx index 691ba63cda..b1d1264db3 100644 --- a/src/renderer/components/+network-port-forwards/port-forward-menu.tsx +++ b/src/renderer/components/+network-port-forwards/port-forward-menu.tsx @@ -14,7 +14,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import portForwardDialogModelInjectable from "../../port-forward/port-forward-dialog-model/port-forward-dialog-model.injectable"; import portForwardStoreInjectable from "../../port-forward/port-forward-store/port-forward-store.injectable"; -interface Props extends MenuActionsProps { +export interface PortForwardMenuProps extends MenuActionsProps { portForward: PortForwardItem; hideDetails?(): void; } @@ -24,7 +24,7 @@ interface Dependencies { openPortForwardDialog: (item: PortForwardItem) => void; } -class NonInjectedPortForwardMenu extends React.Component { +class NonInjectedPortForwardMenu extends React.Component { @boundMethod remove() { const { portForward } = this.props; @@ -109,7 +109,7 @@ class NonInjectedPortForwardMenu extends React.Component { } } -export const PortForwardMenu = withInjectables( +export const PortForwardMenu = withInjectables( NonInjectedPortForwardMenu, { diff --git a/src/renderer/components/+network-port-forwards/port-forwards.tsx b/src/renderer/components/+network-port-forwards/port-forwards.tsx index 082c0cc89f..1a079cd598 100644 --- a/src/renderer/components/+network-port-forwards/port-forwards.tsx +++ b/src/renderer/components/+network-port-forwards/port-forwards.tsx @@ -27,7 +27,7 @@ enum columnId { status = "status", } -interface Props extends RouteComponentProps { +export interface PortForwardsProps extends RouteComponentProps { } interface Dependencies { @@ -35,7 +35,7 @@ interface Dependencies { } @observer -class NonInjectedPortForwards extends React.Component { +class NonInjectedPortForwards extends React.Component { componentDidMount() { disposeOnUnmount(this, [ @@ -143,7 +143,7 @@ class NonInjectedPortForwards extends React.Component { } } -export const PortForwards = withInjectables( +export const PortForwards = withInjectables( NonInjectedPortForwards, { diff --git a/src/renderer/components/+network-services/service-details-endpoint.tsx b/src/renderer/components/+network-services/service-details-endpoint.tsx index 0943427aad..936bec2302 100644 --- a/src/renderer/components/+network-services/service-details-endpoint.tsx +++ b/src/renderer/components/+network-services/service-details-endpoint.tsx @@ -12,12 +12,12 @@ import { endpointStore } from "../+network-endpoints/endpoints.store"; import { Spinner } from "../spinner"; import { showDetails } from "../kube-detail-params"; -interface Props { +export interface ServiceDetailsEndpointProps { endpoint: KubeObject; } @observer -export class ServiceDetailsEndpoint extends React.Component { +export class ServiceDetailsEndpoint extends React.Component { render() { const { endpoint } = this.props; diff --git a/src/renderer/components/+network-services/service-details.tsx b/src/renderer/components/+network-services/service-details.tsx index 1f7fe41c0d..833fd7b59d 100644 --- a/src/renderer/components/+network-services/service-details.tsx +++ b/src/renderer/components/+network-services/service-details.tsx @@ -26,7 +26,7 @@ import kubeWatchApiInjectable import portForwardStoreInjectable from "../../port-forward/port-forward-store/port-forward-store.injectable"; import type { KubeWatchSubscribeStoreOptions } from "../../kube-watch-api/kube-watch-api"; -interface Props extends KubeObjectDetailsProps { +export interface ServiceDetailsProps extends KubeObjectDetailsProps { } interface Dependencies { @@ -35,7 +35,7 @@ interface Dependencies { } @observer -class NonInjectedServiceDetails extends React.Component { +class NonInjectedServiceDetails extends React.Component { componentDidMount() { const { object: service } = this.props; @@ -137,7 +137,7 @@ class NonInjectedServiceDetails extends React.Component { } } -export const ServiceDetails = withInjectables( +export const ServiceDetails = withInjectables( NonInjectedServiceDetails, { diff --git a/src/renderer/components/+network-services/service-port-component.tsx b/src/renderer/components/+network-services/service-port-component.tsx index 098b233e9c..39baf0da09 100644 --- a/src/renderer/components/+network-services/service-port-component.tsx +++ b/src/renderer/components/+network-services/service-port-component.tsx @@ -25,7 +25,7 @@ import portForwardStoreInjectable from "../../port-forward/port-forward-store/po import portForwardDialogModelInjectable from "../../port-forward/port-forward-dialog-model/port-forward-dialog-model.injectable"; import logger from "../../../common/logger"; -interface Props { +export interface ServicePortComponentProps { service: Service; port: ServicePort; } @@ -36,13 +36,13 @@ interface Dependencies { } @observer -class NonInjectedServicePortComponent extends React.Component { +class NonInjectedServicePortComponent extends React.Component { @observable waiting = false; @observable forwardPort = 0; @observable isPortForwarded = false; @observable isActive = false; - constructor(props: Props & Dependencies) { + constructor(props: ServicePortComponentProps & Dependencies) { super(props); makeObservable(this); this.checkExistingPortForwarding(); @@ -186,7 +186,7 @@ class NonInjectedServicePortComponent extends React.Component( +export const ServicePortComponent = withInjectables( NonInjectedServicePortComponent, { diff --git a/src/renderer/components/+network-services/services.tsx b/src/renderer/components/+network-services/services.tsx index 84d608cb43..78cb97907c 100644 --- a/src/renderer/components/+network-services/services.tsx +++ b/src/renderer/components/+network-services/services.tsx @@ -26,11 +26,11 @@ enum columnId { status = "status", } -interface Props extends RouteComponentProps { +export interface ServicesProps extends RouteComponentProps { } @observer -export class Services extends React.Component { +export class Services extends React.Component { render() { return ( { +export class NodeDetailsResources extends React.Component { toMi(resource: string) { if (resource?.endsWith("Ki")) { return `${(parseInt(resource) / 1024).toFixed(1)}Mi`; diff --git a/src/renderer/components/+nodes/details.tsx b/src/renderer/components/+nodes/details.tsx index baa2557ad9..f9646478c1 100644 --- a/src/renderer/components/+nodes/details.tsx +++ b/src/renderer/components/+nodes/details.tsx @@ -31,7 +31,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import kubeWatchApiInjectable from "../../kube-watch-api/kube-watch-api.injectable"; -interface Props extends KubeObjectDetailsProps { +export interface NodeDetailsProps extends KubeObjectDetailsProps { } interface Dependencies { @@ -39,10 +39,10 @@ interface Dependencies { } @observer -class NonInjectedNodeDetails extends React.Component { +class NonInjectedNodeDetails extends React.Component { @observable metrics: Partial; - constructor(props: Props & Dependencies) { + constructor(props: NodeDetailsProps & Dependencies) { super(props); makeObservable(this); } @@ -184,7 +184,7 @@ class NonInjectedNodeDetails extends React.Component { } } -export const NodeDetails = withInjectables( +export const NodeDetails = withInjectables( NonInjectedNodeDetails, { diff --git a/src/renderer/components/+nodes/route.tsx b/src/renderer/components/+nodes/route.tsx index 8801e6e832..a4b4cbb660 100644 --- a/src/renderer/components/+nodes/route.tsx +++ b/src/renderer/components/+nodes/route.tsx @@ -37,7 +37,7 @@ enum columnId { status = "status", } -interface Props extends RouteComponentProps { +export interface NodesRouteProps extends RouteComponentProps { } type MetricsTooltipFormatter = (metrics: [number, number]) => string; @@ -50,11 +50,11 @@ interface UsageArgs { } @observer -export class NodesRoute extends React.Component { +export class NodesRoute extends React.Component { @observable.ref metrics: Partial = {}; private metricsWatcher = interval(30, async () => this.metrics = await getMetricsForAllNodes()); - constructor(props: Props) { + constructor(props: NodesRouteProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+pod-security-policies/pod-security-policy-details.tsx b/src/renderer/components/+pod-security-policies/pod-security-policy-details.tsx index 71d82cd506..9c556d1082 100644 --- a/src/renderer/components/+pod-security-policies/pod-security-policy-details.tsx +++ b/src/renderer/components/+pod-security-policies/pod-security-policy-details.tsx @@ -15,7 +15,7 @@ import { Table, TableCell, TableHead, TableRow } from "../table"; import { KubeObjectMeta } from "../kube-object-meta"; import logger from "../../../common/logger"; -interface Props extends KubeObjectDetailsProps { +export interface PodSecurityPolicyDetailsProps extends KubeObjectDetailsProps { } interface RuleGroup { @@ -27,7 +27,7 @@ interface RuleGroup { } @observer -export class PodSecurityPolicyDetails extends React.Component { +export class PodSecurityPolicyDetails extends React.Component { renderRuleGroup( title: React.ReactNode, group: RuleGroup) { if (!group) return null; const { rule, ranges } = group; diff --git a/src/renderer/components/+preferences/add-helm-repo-dialog.tsx b/src/renderer/components/+preferences/add-helm-repo-dialog.tsx index c47f343e21..a8768db1e1 100644 --- a/src/renderer/components/+preferences/add-helm-repo-dialog.tsx +++ b/src/renderer/components/+preferences/add-helm-repo-dialog.tsx @@ -21,8 +21,8 @@ import { Notifications } from "../notifications"; import { type HelmRepo, HelmRepoManager } from "../../../main/helm/helm-repo-manager"; import { requestOpenFilePickingDialog } from "../../ipc"; -interface Props extends Partial { - onAddRepo: Function; +export interface AddHelmRepoDialogProps extends Partial { + onAddRepo: () => void; } enum FileType { @@ -40,11 +40,11 @@ function getEmptyRepo(): HelmRepo { } @observer -export class AddHelmRepoDialog extends React.Component { +export class AddHelmRepoDialog extends React.Component { private static keyExtensions = ["key", "keystore", "jks", "p12", "pfx", "pem"]; private static certExtensions = ["crt", "cer", "ca-bundle", "p7b", "p7c", "p7s", "p12", "pfx", "pem"]; - constructor(props: Props) { + constructor(props: AddHelmRepoDialogProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+preferences/extension-settings.tsx b/src/renderer/components/+preferences/extension-settings.tsx index e3822531f4..eb4970976b 100644 --- a/src/renderer/components/+preferences/extension-settings.tsx +++ b/src/renderer/components/+preferences/extension-settings.tsx @@ -7,7 +7,7 @@ import type { AppPreferenceRegistration } from "./app-preferences/app-preference import React from "react"; import { cssNames } from "../../../renderer/utils"; -interface ExtensionSettingsProps { +export interface ExtensionSettingsProps { setting: AppPreferenceRegistration; size: "small" | "normal"; } diff --git a/src/renderer/components/+preferences/removable-item.tsx b/src/renderer/components/+preferences/removable-item.tsx index d2f4d51f82..390b30f36c 100644 --- a/src/renderer/components/+preferences/removable-item.tsx +++ b/src/renderer/components/+preferences/removable-item.tsx @@ -9,13 +9,13 @@ import React, { DOMAttributes } from "react"; import { cssNames } from "../../utils"; import { Icon } from "../icon"; -interface Props extends DOMAttributes{ +export interface RemovableItemProps extends DOMAttributes{ icon?: string; onRemove: () => void; className?: string; } -export function RemovableItem({ icon, onRemove, children, className, ...rest }: Props) { +export function RemovableItem({ icon, onRemove, children, className, ...rest }: RemovableItemProps) { return (
{icon && ( diff --git a/src/renderer/components/+storage-classes/storage-class-details.tsx b/src/renderer/components/+storage-classes/storage-class-details.tsx index 8cc9075122..dc8a118d6b 100644 --- a/src/renderer/components/+storage-classes/storage-class-details.tsx +++ b/src/renderer/components/+storage-classes/storage-class-details.tsx @@ -24,7 +24,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import kubeWatchApiInjectable from "../../kube-watch-api/kube-watch-api.injectable"; -interface Props extends KubeObjectDetailsProps { +export interface StorageClassDetailsProps extends KubeObjectDetailsProps { } interface Dependencies { @@ -32,7 +32,7 @@ interface Dependencies { } @observer -class NonInjectedStorageClassDetails extends React.Component { +class NonInjectedStorageClassDetails extends React.Component { componentDidMount() { disposeOnUnmount(this, [ this.props.subscribeStores([ @@ -96,7 +96,7 @@ class NonInjectedStorageClassDetails extends React.Component( +export const StorageClassDetails = withInjectables( NonInjectedStorageClassDetails, { diff --git a/src/renderer/components/+storage-classes/storage-classes.tsx b/src/renderer/components/+storage-classes/storage-classes.tsx index 4214133540..06c646c7c6 100644 --- a/src/renderer/components/+storage-classes/storage-classes.tsx +++ b/src/renderer/components/+storage-classes/storage-classes.tsx @@ -21,11 +21,11 @@ enum columnId { reclaimPolicy = "reclaim", } -interface Props extends RouteComponentProps { +export interface StorageClassesProps extends RouteComponentProps { } @observer -export class StorageClasses extends React.Component { +export class StorageClasses extends React.Component { render() { return ( { +export interface PersistentVolumeClaimDetailsProps extends KubeObjectDetailsProps { } @observer -export class PersistentVolumeClaimDetails extends React.Component { +export class PersistentVolumeClaimDetails extends React.Component { @observable metrics: IPvcMetrics = null; - constructor(props: Props) { + constructor(props: PersistentVolumeClaimDetailsProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+storage-volume-claims/volume-claims.tsx b/src/renderer/components/+storage-volume-claims/volume-claims.tsx index dec3a1fcce..30f0077901 100644 --- a/src/renderer/components/+storage-volume-claims/volume-claims.tsx +++ b/src/renderer/components/+storage-volume-claims/volume-claims.tsx @@ -28,11 +28,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface PersistentVolumeClaimsProps extends RouteComponentProps { } @observer -export class PersistentVolumeClaims extends React.Component { +export class PersistentVolumeClaims extends React.Component { render() { return ( { +export class VolumeDetailsList extends React.Component { private sortingCallbacks = { [sortBy.name]: (volume: PersistentVolume) => volume.getName(), [sortBy.capacity]: (volume: PersistentVolume) => volume.getCapacity(), diff --git a/src/renderer/components/+storage-volumes/volume-details.tsx b/src/renderer/components/+storage-volumes/volume-details.tsx index 5cfa954402..8c8f75f817 100644 --- a/src/renderer/components/+storage-volumes/volume-details.tsx +++ b/src/renderer/components/+storage-volumes/volume-details.tsx @@ -17,11 +17,11 @@ import { KubeObjectMeta } from "../kube-object-meta"; import { getDetailsUrl } from "../kube-detail-params"; import logger from "../../../common/logger"; -interface Props extends KubeObjectDetailsProps { +export interface PersistentVolumeDetailsProps extends KubeObjectDetailsProps { } @observer -export class PersistentVolumeDetails extends React.Component { +export class PersistentVolumeDetails extends React.Component { render() { const { object: volume } = this.props; diff --git a/src/renderer/components/+storage-volumes/volumes.tsx b/src/renderer/components/+storage-volumes/volumes.tsx index b271585455..0c458ea567 100644 --- a/src/renderer/components/+storage-volumes/volumes.tsx +++ b/src/renderer/components/+storage-volumes/volumes.tsx @@ -25,11 +25,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface PersistentVolumesProps extends RouteComponentProps { } @observer -export class PersistentVolumes extends React.Component { +export class PersistentVolumes extends React.Component { render() { return ( { +export interface ClusterRoleBindingDetailsProps extends KubeObjectDetailsProps { } @observer -export class ClusterRoleBindingDetails extends React.Component { +export class ClusterRoleBindingDetails extends React.Component { selectedSubjects = new ObservableHashSet([], hashClusterRoleBindingSubject); - constructor(props: Props) { + constructor(props: ClusterRoleBindingDetailsProps) { super(props); autoBind(this); } diff --git a/src/renderer/components/+user-management/+cluster-role-bindings/dialog.tsx b/src/renderer/components/+user-management/+cluster-role-bindings/dialog.tsx index 3823b2213e..54f626397e 100644 --- a/src/renderer/components/+user-management/+cluster-role-bindings/dialog.tsx +++ b/src/renderer/components/+user-management/+cluster-role-bindings/dialog.tsx @@ -25,7 +25,7 @@ import { ObservableHashSet, nFircate } from "../../../utils"; import { Input } from "../../input"; import { TooltipPosition } from "../../tooltip"; -interface Props extends Partial { +export interface ClusterRoleBindingDialogProps extends Partial { } interface DialogState { @@ -34,12 +34,12 @@ interface DialogState { } @observer -export class ClusterRoleBindingDialog extends React.Component { +export class ClusterRoleBindingDialog extends React.Component { static state = observable.object({ isOpen: false, }); - constructor(props: Props) { + constructor(props: ClusterRoleBindingDialogProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+user-management/+cluster-role-bindings/view.tsx b/src/renderer/components/+user-management/+cluster-role-bindings/view.tsx index aac85971d4..e24a73243f 100644 --- a/src/renderer/components/+user-management/+cluster-role-bindings/view.tsx +++ b/src/renderer/components/+user-management/+cluster-role-bindings/view.tsx @@ -23,11 +23,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface ClusterRoleBindingsProps extends RouteComponentProps { } @observer -export class ClusterRoleBindings extends React.Component { +export class ClusterRoleBindings extends React.Component { render() { return ( <> diff --git a/src/renderer/components/+user-management/+cluster-roles/add-dialog.tsx b/src/renderer/components/+user-management/+cluster-roles/add-dialog.tsx index dedd371764..86e5ca90f4 100644 --- a/src/renderer/components/+user-management/+cluster-roles/add-dialog.tsx +++ b/src/renderer/components/+user-management/+cluster-roles/add-dialog.tsx @@ -16,16 +16,16 @@ import { Notifications } from "../../notifications"; import { Wizard, WizardStep } from "../../wizard"; import { clusterRolesStore } from "./store"; -interface Props extends Partial { +export interface AddClusterRoleDialogProps extends Partial { } @observer -export class AddClusterRoleDialog extends React.Component { +export class AddClusterRoleDialog extends React.Component { static isOpen = observable.box(false); @observable clusterRoleName = ""; - constructor(props: Props) { + constructor(props: AddClusterRoleDialogProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+user-management/+cluster-roles/details.tsx b/src/renderer/components/+user-management/+cluster-roles/details.tsx index 4fadd76bbe..96584e7f2c 100644 --- a/src/renderer/components/+user-management/+cluster-roles/details.tsx +++ b/src/renderer/components/+user-management/+cluster-roles/details.tsx @@ -13,11 +13,11 @@ import type { KubeObjectDetailsProps } from "../../kube-object-details"; import { KubeObjectMeta } from "../../kube-object-meta"; import type { ClusterRole } from "../../../../common/k8s-api/endpoints"; -interface Props extends KubeObjectDetailsProps { +export interface ClusterRoleDetailsProps extends KubeObjectDetailsProps { } @observer -export class ClusterRoleDetails extends React.Component { +export class ClusterRoleDetails extends React.Component { render() { const { object: clusterRole } = this.props; diff --git a/src/renderer/components/+user-management/+cluster-roles/view.tsx b/src/renderer/components/+user-management/+cluster-roles/view.tsx index 89c918c721..ca2a8755d0 100644 --- a/src/renderer/components/+user-management/+cluster-roles/view.tsx +++ b/src/renderer/components/+user-management/+cluster-roles/view.tsx @@ -20,11 +20,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface ClusterRolesProps extends RouteComponentProps { } @observer -export class ClusterRoles extends React.Component { +export class ClusterRoles extends React.Component { render() { return ( <> diff --git a/src/renderer/components/+user-management/+role-bindings/details.tsx b/src/renderer/components/+user-management/+role-bindings/details.tsx index dd82a11b89..2961a148cc 100644 --- a/src/renderer/components/+user-management/+role-bindings/details.tsx +++ b/src/renderer/components/+user-management/+role-bindings/details.tsx @@ -21,11 +21,11 @@ import { roleBindingsStore } from "./store"; import { ObservableHashSet } from "../../../../common/utils/hash-set"; import { hashRoleBindingSubject } from "./hashers"; -interface Props extends KubeObjectDetailsProps { +export interface RoleBindingDetailsProps extends KubeObjectDetailsProps { } @observer -export class RoleBindingDetails extends React.Component { +export class RoleBindingDetails extends React.Component { selectedSubjects = new ObservableHashSet([], hashRoleBindingSubject); async componentDidMount() { diff --git a/src/renderer/components/+user-management/+role-bindings/dialog.tsx b/src/renderer/components/+user-management/+role-bindings/dialog.tsx index 29cb771432..3add013dc3 100644 --- a/src/renderer/components/+user-management/+role-bindings/dialog.tsx +++ b/src/renderer/components/+user-management/+role-bindings/dialog.tsx @@ -26,7 +26,7 @@ import { clusterRolesStore } from "../+cluster-roles/store"; import { Input } from "../../input"; import { ObservableHashSet, nFircate } from "../../../utils"; -interface Props extends Partial { +export interface RoleBindingDialogProps extends Partial { } interface DialogState { @@ -35,12 +35,12 @@ interface DialogState { } @observer -export class RoleBindingDialog extends React.Component { +export class RoleBindingDialog extends React.Component { static state = observable.object({ isOpen: false, }); - constructor(props: Props) { + constructor(props: RoleBindingDialogProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+user-management/+role-bindings/view.tsx b/src/renderer/components/+user-management/+role-bindings/view.tsx index c97974661b..60a0307df4 100644 --- a/src/renderer/components/+user-management/+role-bindings/view.tsx +++ b/src/renderer/components/+user-management/+role-bindings/view.tsx @@ -23,11 +23,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface RoleBindingsProps extends RouteComponentProps { } @observer -export class RoleBindings extends React.Component { +export class RoleBindings extends React.Component { render() { return ( <> diff --git a/src/renderer/components/+user-management/+roles/add-dialog.tsx b/src/renderer/components/+user-management/+roles/add-dialog.tsx index 8197974833..6bf6b6ef1f 100644 --- a/src/renderer/components/+user-management/+roles/add-dialog.tsx +++ b/src/renderer/components/+user-management/+roles/add-dialog.tsx @@ -18,17 +18,17 @@ import { Notifications } from "../../notifications"; import { Wizard, WizardStep } from "../../wizard"; import { rolesStore } from "./store"; -interface Props extends Partial { +export interface AddRoleDialogProps extends Partial { } @observer -export class AddRoleDialog extends React.Component { +export class AddRoleDialog extends React.Component { static isOpen = observable.box(false); @observable roleName = ""; @observable namespace = ""; - constructor(props: Props) { + constructor(props: AddRoleDialogProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+user-management/+roles/details.tsx b/src/renderer/components/+user-management/+roles/details.tsx index 36675382ef..7342715fd1 100644 --- a/src/renderer/components/+user-management/+roles/details.tsx +++ b/src/renderer/components/+user-management/+roles/details.tsx @@ -13,11 +13,11 @@ import { DrawerTitle } from "../../drawer"; import type { KubeObjectDetailsProps } from "../../kube-object-details"; import { KubeObjectMeta } from "../../kube-object-meta"; -interface Props extends KubeObjectDetailsProps { +export interface RoleDetailsProps extends KubeObjectDetailsProps { } @observer -export class RoleDetails extends React.Component { +export class RoleDetails extends React.Component { render() { const { object: role } = this.props; diff --git a/src/renderer/components/+user-management/+roles/view.tsx b/src/renderer/components/+user-management/+roles/view.tsx index 1acd0b2f35..4939642e95 100644 --- a/src/renderer/components/+user-management/+roles/view.tsx +++ b/src/renderer/components/+user-management/+roles/view.tsx @@ -20,11 +20,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface RolesProps extends RouteComponentProps { } @observer -export class Roles extends React.Component { +export class Roles extends React.Component { render() { return ( <> diff --git a/src/renderer/components/+user-management/+service-accounts/create-dialog.tsx b/src/renderer/components/+user-management/+service-accounts/create-dialog.tsx index 1804880d64..c041d502f4 100644 --- a/src/renderer/components/+user-management/+service-accounts/create-dialog.tsx +++ b/src/renderer/components/+user-management/+service-accounts/create-dialog.tsx @@ -19,17 +19,17 @@ import { Notifications } from "../../notifications"; import { Wizard, WizardStep } from "../../wizard"; import { serviceAccountsStore } from "./store"; -interface Props extends Partial { +export interface CreateServiceAccountDialogProps extends Partial { } @observer -export class CreateServiceAccountDialog extends React.Component { +export class CreateServiceAccountDialog extends React.Component { static isOpen = observable.box(false); @observable name = ""; @observable namespace = "default"; - constructor(props: Props) { + constructor(props: CreateServiceAccountDialogProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+user-management/+service-accounts/details.tsx b/src/renderer/components/+user-management/+service-accounts/details.tsx index dec10fa678..f627b04b21 100644 --- a/src/renderer/components/+user-management/+service-accounts/details.tsx +++ b/src/renderer/components/+user-management/+service-accounts/details.tsx @@ -20,11 +20,11 @@ import { Spinner } from "../../spinner"; import { ServiceAccountsSecret } from "./secret"; import { getDetailsUrl } from "../../kube-detail-params"; -interface Props extends KubeObjectDetailsProps { +export interface ServiceAccountsDetailsProps extends KubeObjectDetailsProps { } @observer -export class ServiceAccountsDetails extends React.Component { +export class ServiceAccountsDetails extends React.Component { @observable secrets: Secret[]; @observable imagePullSecrets: Secret[]; @@ -53,7 +53,7 @@ export class ServiceAccountsDetails extends React.Component { ]); } - constructor(props: Props) { + constructor(props: ServiceAccountsDetailsProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+user-management/+service-accounts/secret.tsx b/src/renderer/components/+user-management/+service-accounts/secret.tsx index 97959dbac9..04f4f86899 100644 --- a/src/renderer/components/+user-management/+service-accounts/secret.tsx +++ b/src/renderer/components/+user-management/+service-accounts/secret.tsx @@ -12,7 +12,7 @@ import type { Secret } from "../../../../common/k8s-api/endpoints/secret.api"; import { prevDefault } from "../../../utils"; import { Icon } from "../../icon"; -interface Props { +export interface ServiceAccountsSecretProps { secret: Secret; } @@ -20,7 +20,7 @@ interface State { showToken: boolean; } -export class ServiceAccountsSecret extends React.Component { +export class ServiceAccountsSecret extends React.Component { public state: State = { showToken: false, }; diff --git a/src/renderer/components/+user-management/+service-accounts/view.tsx b/src/renderer/components/+user-management/+service-accounts/view.tsx index 94c7370639..bc768f5874 100644 --- a/src/renderer/components/+user-management/+service-accounts/view.tsx +++ b/src/renderer/components/+user-management/+service-accounts/view.tsx @@ -20,11 +20,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface ServiceAccountsProps extends RouteComponentProps { } @observer -export class ServiceAccounts extends React.Component { +export class ServiceAccounts extends React.Component { render() { return ( <> diff --git a/src/renderer/components/+workloads-cronjobs/cronjob-details.tsx b/src/renderer/components/+workloads-cronjobs/cronjob-details.tsx index 1a3b70cb85..19d49b2de8 100644 --- a/src/renderer/components/+workloads-cronjobs/cronjob-details.tsx +++ b/src/renderer/components/+workloads-cronjobs/cronjob-details.tsx @@ -25,7 +25,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import kubeWatchApiInjectable from "../../kube-watch-api/kube-watch-api.injectable"; -interface Props extends KubeObjectDetailsProps { +export interface CronJobDetailsProps extends KubeObjectDetailsProps { } interface Dependencies { @@ -33,7 +33,7 @@ interface Dependencies { } @observer -class NonInjectedCronJobDetails extends React.Component { +class NonInjectedCronJobDetails extends React.Component { componentDidMount() { disposeOnUnmount(this, [ this.props.subscribeStores([ @@ -113,7 +113,7 @@ class NonInjectedCronJobDetails extends React.Component { } } -export const CronJobDetails = withInjectables( +export const CronJobDetails = withInjectables( NonInjectedCronJobDetails, { diff --git a/src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx b/src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx index 689dd87ee1..b545bdf44f 100644 --- a/src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx +++ b/src/renderer/components/+workloads-cronjobs/cronjob-trigger-dialog.tsx @@ -17,7 +17,7 @@ import { Input } from "../input"; import { systemName, maxLength } from "../input/input_validators"; import type { KubeObjectMetadata } from "../../../common/k8s-api/kube-object"; -interface Props extends Partial { +export interface CronJobTriggerDialogProps extends Partial { } const dialogState = observable.object({ @@ -26,11 +26,11 @@ const dialogState = observable.object({ }); @observer -export class CronJobTriggerDialog extends Component { +export class CronJobTriggerDialog extends Component { @observable jobName = ""; @observable ready = false; - constructor(props: Props) { + constructor(props: CronJobTriggerDialogProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+workloads-cronjobs/cronjobs.tsx b/src/renderer/components/+workloads-cronjobs/cronjobs.tsx index 30e476502e..5b0dff6ce5 100644 --- a/src/renderer/components/+workloads-cronjobs/cronjobs.tsx +++ b/src/renderer/components/+workloads-cronjobs/cronjobs.tsx @@ -26,11 +26,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface CronJobsProps extends RouteComponentProps { } @observer -export class CronJobs extends React.Component { +export class CronJobs extends React.Component { render() { return ( { +export interface DaemonSetDetailsProps extends KubeObjectDetailsProps { } interface Dependencies { @@ -39,10 +39,10 @@ interface Dependencies { } @observer -class NonInjectedDaemonSetDetails extends React.Component { +class NonInjectedDaemonSetDetails extends React.Component { @observable metrics: IPodMetrics = null; - constructor(props: Props & Dependencies) { + constructor(props: DaemonSetDetailsProps & Dependencies) { super(props); makeObservable(this); } @@ -132,7 +132,7 @@ class NonInjectedDaemonSetDetails extends React.Component } } -export const DaemonSetDetails = withInjectables( +export const DaemonSetDetails = withInjectables( NonInjectedDaemonSetDetails, { diff --git a/src/renderer/components/+workloads-daemonsets/daemonsets.tsx b/src/renderer/components/+workloads-daemonsets/daemonsets.tsx index 73befe42df..6aad52d788 100644 --- a/src/renderer/components/+workloads-daemonsets/daemonsets.tsx +++ b/src/renderer/components/+workloads-daemonsets/daemonsets.tsx @@ -25,11 +25,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface DaemonSetsProps extends RouteComponentProps { } @observer -export class DaemonSets extends React.Component { +export class DaemonSets extends React.Component { getPodsLength(daemonSet: DaemonSet) { return daemonSetStore.getChildPods(daemonSet).length; } diff --git a/src/renderer/components/+workloads-deployments/deployment-details.tsx b/src/renderer/components/+workloads-deployments/deployment-details.tsx index 17ac7899fb..56f4070e80 100644 --- a/src/renderer/components/+workloads-deployments/deployment-details.tsx +++ b/src/renderer/components/+workloads-deployments/deployment-details.tsx @@ -33,7 +33,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import kubeWatchApiInjectable from "../../kube-watch-api/kube-watch-api.injectable"; -interface Props extends KubeObjectDetailsProps { +export interface DeploymentDetailsProps extends KubeObjectDetailsProps { } interface Dependencies { @@ -41,10 +41,10 @@ interface Dependencies { } @observer -class NonInjectedDeploymentDetails extends React.Component { +class NonInjectedDeploymentDetails extends React.Component { @observable metrics: IPodMetrics = null; - constructor(props: Props & Dependencies) { + constructor(props: DeploymentDetailsProps & Dependencies) { super(props); makeObservable(this); } @@ -156,7 +156,7 @@ class NonInjectedDeploymentDetails extends React.Component } } -export const DeploymentDetails = withInjectables( +export const DeploymentDetails = withInjectables( NonInjectedDeploymentDetails, { diff --git a/src/renderer/components/+workloads-deployments/deployment-replicasets.tsx b/src/renderer/components/+workloads-deployments/deployment-replicasets.tsx index 2905c1accb..2bb1510f19 100644 --- a/src/renderer/components/+workloads-deployments/deployment-replicasets.tsx +++ b/src/renderer/components/+workloads-deployments/deployment-replicasets.tsx @@ -25,12 +25,12 @@ enum sortBy { age = "age", } -interface Props { +export interface DeploymentReplicaSetsProps { replicaSets: ReplicaSet[]; } @observer -export class DeploymentReplicaSets extends React.Component { +export class DeploymentReplicaSets extends React.Component { private sortingCallbacks = { [sortBy.name]: (replicaSet: ReplicaSet) => replicaSet.getName(), [sortBy.namespace]: (replicaSet: ReplicaSet) => replicaSet.getNs(), diff --git a/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx b/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx index c8741b72fd..a9cf32c61e 100644 --- a/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx +++ b/src/renderer/components/+workloads-deployments/deployment-scale-dialog.tsx @@ -16,7 +16,7 @@ import { Slider } from "../slider"; import { Notifications } from "../notifications"; import { cssNames } from "../../utils"; -interface Props extends Partial { +export interface DeploymentScaleDialogProps extends Partial { deploymentApi: DeploymentApi; } @@ -26,7 +26,7 @@ const dialogState = observable.object({ }); @observer -export class DeploymentScaleDialog extends Component { +export class DeploymentScaleDialog extends Component { static defaultProps = { deploymentApi, }; @@ -35,7 +35,7 @@ export class DeploymentScaleDialog extends Component { @observable currentReplicas = 0; @observable desiredReplicas = 0; - constructor(props: Props) { + constructor(props: DeploymentScaleDialogProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+workloads-deployments/deployments.tsx b/src/renderer/components/+workloads-deployments/deployments.tsx index 3506db0486..3dcbeac0b8 100644 --- a/src/renderer/components/+workloads-deployments/deployments.tsx +++ b/src/renderer/components/+workloads-deployments/deployments.tsx @@ -27,11 +27,11 @@ enum columnId { condition = "condition", } -interface Props extends RouteComponentProps { +export interface DeploymentsProps extends RouteComponentProps { } @observer -export class Deployments extends React.Component { +export class Deployments extends React.Component { renderPods(deployment: Deployment) { const { replicas, availableReplicas } = deployment.status; diff --git a/src/renderer/components/+workloads-jobs/job-details.tsx b/src/renderer/components/+workloads-jobs/job-details.tsx index 7c5c8157ed..a571a1a4b7 100644 --- a/src/renderer/components/+workloads-jobs/job-details.tsx +++ b/src/renderer/components/+workloads-jobs/job-details.tsx @@ -36,7 +36,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import kubeWatchApiInjectable from "../../kube-watch-api/kube-watch-api.injectable"; -interface Props extends KubeObjectDetailsProps { +export interface JobDetailsProps extends KubeObjectDetailsProps { } interface Dependencies { @@ -44,10 +44,10 @@ interface Dependencies { } @observer -class NonInjectedJobDetails extends React.Component { +class NonInjectedJobDetails extends React.Component { @observable metrics: IPodMetrics = null; - constructor(props: Props & Dependencies) { + constructor(props: JobDetailsProps & Dependencies) { super(props); makeObservable(this); } @@ -165,7 +165,7 @@ class NonInjectedJobDetails extends React.Component { } } -export const JobDetails = withInjectables( +export const JobDetails = withInjectables( NonInjectedJobDetails, { diff --git a/src/renderer/components/+workloads-jobs/jobs.tsx b/src/renderer/components/+workloads-jobs/jobs.tsx index ae3c8c931d..15a49bafb0 100644 --- a/src/renderer/components/+workloads-jobs/jobs.tsx +++ b/src/renderer/components/+workloads-jobs/jobs.tsx @@ -23,11 +23,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface JobsProps extends RouteComponentProps { } @observer -export class Jobs extends React.Component { +export class Jobs extends React.Component { render() { return ( ; } @observer -export class OverviewWorkloadStatus extends React.Component { +export class OverviewWorkloadStatus extends React.Component { elem?: HTMLElement; renderChart() { diff --git a/src/renderer/components/+workloads-overview/overview.tsx b/src/renderer/components/+workloads-overview/overview.tsx index 51e247ac57..b4ee166ca9 100644 --- a/src/renderer/components/+workloads-overview/overview.tsx +++ b/src/renderer/components/+workloads-overview/overview.tsx @@ -31,7 +31,7 @@ import type { Disposer } from "../../../common/utils"; import kubeWatchApiInjectable from "../../kube-watch-api/kube-watch-api.injectable"; import type { KubeWatchSubscribeStoreOptions } from "../../kube-watch-api/kube-watch-api"; -interface Props extends RouteComponentProps { +export interface WorkloadsOverviewProps extends RouteComponentProps { } interface Dependencies { @@ -40,10 +40,10 @@ interface Dependencies { } @observer -class NonInjectedWorkloadsOverview extends React.Component { +class NonInjectedWorkloadsOverview extends React.Component { @observable loadErrors: string[] = []; - constructor(props: Props & Dependencies) { + constructor(props: WorkloadsOverviewProps & Dependencies) { super(props); makeObservable(this); } @@ -111,7 +111,7 @@ class NonInjectedWorkloadsOverview extends React.Component } } -export const WorkloadsOverview = withInjectables( +export const WorkloadsOverview = withInjectables( NonInjectedWorkloadsOverview, { diff --git a/src/renderer/components/+workloads-pods/pod-container-env.tsx b/src/renderer/components/+workloads-pods/pod-container-env.tsx index ecf711007c..b6cc7b733a 100644 --- a/src/renderer/components/+workloads-pods/pod-container-env.tsx +++ b/src/renderer/components/+workloads-pods/pod-container-env.tsx @@ -16,12 +16,12 @@ import { Icon } from "../icon"; import { base64, cssNames, iter } from "../../utils"; import _ from "lodash"; -interface Props { +export interface ContainerEnvironmentProps { container: IPodContainer; namespace: string; } -export const ContainerEnvironment = observer((props: Props) => { +export const ContainerEnvironment = observer((props: ContainerEnvironmentProps) => { const { container: { env, envFrom }, namespace } = props; useEffect( () => autorun(() => { @@ -149,7 +149,7 @@ export const ContainerEnvironment = observer((props: Props) => { ); }); -interface SecretKeyProps { +export interface SecretKeyProps { reference: { name: string; key: string; diff --git a/src/renderer/components/+workloads-pods/pod-container-port.tsx b/src/renderer/components/+workloads-pods/pod-container-port.tsx index a80fb48911..386554bec3 100644 --- a/src/renderer/components/+workloads-pods/pod-container-port.tsx +++ b/src/renderer/components/+workloads-pods/pod-container-port.tsx @@ -27,7 +27,7 @@ import portForwardStoreInjectable from "../../port-forward/port-forward-store/po import portForwardDialogModelInjectable from "../../port-forward/port-forward-dialog-model/port-forward-dialog-model.injectable"; import logger from "../../../common/logger"; -interface Props { +export interface PodContainerPortProps { pod: Pod; port: { name?: string; @@ -42,13 +42,13 @@ interface Dependencies { } @observer -class NonInjectedPodContainerPort extends React.Component { +class NonInjectedPodContainerPort extends React.Component { @observable waiting = false; @observable forwardPort = 0; @observable isPortForwarded = false; @observable isActive = false; - constructor(props: Props & Dependencies) { + constructor(props: PodContainerPortProps & Dependencies) { super(props); makeObservable(this); this.checkExistingPortForwarding(); @@ -192,7 +192,7 @@ class NonInjectedPodContainerPort extends React.Component } } -export const PodContainerPort = withInjectables( +export const PodContainerPort = withInjectables( NonInjectedPodContainerPort, { diff --git a/src/renderer/components/+workloads-pods/pod-details-affinities.tsx b/src/renderer/components/+workloads-pods/pod-details-affinities.tsx index d0a5de60f0..4b51771d57 100644 --- a/src/renderer/components/+workloads-pods/pod-details-affinities.tsx +++ b/src/renderer/components/+workloads-pods/pod-details-affinities.tsx @@ -9,11 +9,11 @@ import { DrawerItem, DrawerParamToggler } from "../drawer"; import type { DaemonSet, Deployment, Job, Pod, ReplicaSet, StatefulSet } from "../../../common/k8s-api/endpoints"; import { MonacoEditor } from "../monaco-editor"; -interface Props { +export interface PodDetailsAffinitiesProps { workload: Pod | Deployment | DaemonSet | StatefulSet | ReplicaSet | Job; } -export class PodDetailsAffinities extends React.Component { +export class PodDetailsAffinities extends React.Component { render() { const { workload } = this.props; const affinitiesNum = workload.getAffinityNumber(); diff --git a/src/renderer/components/+workloads-pods/pod-details-container.tsx b/src/renderer/components/+workloads-pods/pod-details-container.tsx index 5a81fbaa47..d6af5ba59a 100644 --- a/src/renderer/components/+workloads-pods/pod-details-container.tsx +++ b/src/renderer/components/+workloads-pods/pod-details-container.tsx @@ -24,7 +24,7 @@ import { disposeOnUnmount, observer } from "mobx-react"; import { withInjectables } from "@ogre-tools/injectable-react"; import portForwardStoreInjectable from "../../port-forward/port-forward-store/port-forward-store.injectable"; -interface Props { +export interface PodDetailsContainerProps { pod: Pod; container: IPodContainer; metrics?: { [key: string]: IMetrics }; @@ -35,7 +35,7 @@ interface Dependencies { } @observer -class NonInjectedPodDetailsContainer extends React.Component { +class NonInjectedPodDetailsContainer extends React.Component { componentDidMount() { disposeOnUnmount(this, [ @@ -191,7 +191,7 @@ class NonInjectedPodDetailsContainer extends React.Component( +export const PodDetailsContainer = withInjectables( NonInjectedPodDetailsContainer, { diff --git a/src/renderer/components/+workloads-pods/pod-details-list.tsx b/src/renderer/components/+workloads-pods/pod-details-list.tsx index 52a2ede8f7..c7679706fd 100644 --- a/src/renderer/components/+workloads-pods/pod-details-list.tsx +++ b/src/renderer/components/+workloads-pods/pod-details-list.tsx @@ -27,18 +27,15 @@ enum sortBy { memory = "memory", } -interface Props extends OptionalProps { +export interface PodDetailsListProps { pods: Pod[]; owner: KubeObject; -} - -interface OptionalProps { maxCpu?: number; maxMemory?: number; } @observer -export class PodDetailsList extends React.Component { +export class PodDetailsList extends React.Component { private metricsWatcher = interval(120, () => { podsStore.loadKubeMetrics(this.props.owner.getNs()); }); diff --git a/src/renderer/components/+workloads-pods/pod-details-secrets.tsx b/src/renderer/components/+workloads-pods/pod-details-secrets.tsx index 86896ce934..d7affcef66 100644 --- a/src/renderer/components/+workloads-pods/pod-details-secrets.tsx +++ b/src/renderer/components/+workloads-pods/pod-details-secrets.tsx @@ -12,12 +12,12 @@ import { disposeOnUnmount, observer } from "mobx-react"; import { Pod, Secret, secretsApi } from "../../../common/k8s-api/endpoints"; import { getDetailsUrl } from "../kube-detail-params"; -interface Props { +export interface PodDetailsSecretsProps { pod: Pod; } @observer -export class PodDetailsSecrets extends Component { +export class PodDetailsSecrets extends Component { @observable secrets: Map = observable.map(); componentDidMount(): void { @@ -37,7 +37,7 @@ export class PodDetailsSecrets extends Component { ]); } - constructor(props: Props) { + constructor(props: PodDetailsSecretsProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+workloads-pods/pod-details-statuses.tsx b/src/renderer/components/+workloads-pods/pod-details-statuses.tsx index 056ae41d21..980bdd2628 100644 --- a/src/renderer/components/+workloads-pods/pod-details-statuses.tsx +++ b/src/renderer/components/+workloads-pods/pod-details-statuses.tsx @@ -9,11 +9,11 @@ import countBy from "lodash/countBy"; import kebabCase from "lodash/kebabCase"; import type { Pod } from "../../../common/k8s-api/endpoints"; -interface Props { +export interface PodDetailsStatusesProps { pods: Pod[]; } -export class PodDetailsStatuses extends React.Component { +export class PodDetailsStatuses extends React.Component { render() { const { pods } = this.props; diff --git a/src/renderer/components/+workloads-pods/pod-details-tolerations.tsx b/src/renderer/components/+workloads-pods/pod-details-tolerations.tsx index dec8d7d79c..176ed86dcc 100644 --- a/src/renderer/components/+workloads-pods/pod-details-tolerations.tsx +++ b/src/renderer/components/+workloads-pods/pod-details-tolerations.tsx @@ -9,11 +9,11 @@ import { DrawerParamToggler, DrawerItem } from "../drawer"; import type { WorkloadKubeObject } from "../../../common/k8s-api/workload-kube-object"; import { PodTolerations } from "./pod-tolerations"; -interface Props { +export interface PodDetailsTolerationsProps { workload: WorkloadKubeObject; } -export class PodDetailsTolerations extends React.Component { +export class PodDetailsTolerations extends React.Component { render() { const { workload } = this.props; const tolerations = workload.getTolerations(); diff --git a/src/renderer/components/+workloads-pods/pod-details.tsx b/src/renderer/components/+workloads-pods/pod-details.tsx index 2b8b271138..2b592ebe04 100644 --- a/src/renderer/components/+workloads-pods/pod-details.tsx +++ b/src/renderer/components/+workloads-pods/pod-details.tsx @@ -29,15 +29,15 @@ import { ClusterMetricsResourceType } from "../../../common/cluster-types"; import { getDetailsUrl } from "../kube-detail-params"; import logger from "../../../common/logger"; -interface Props extends KubeObjectDetailsProps { +export interface PodDetailsProps extends KubeObjectDetailsProps { } @observer -export class PodDetails extends React.Component { +export class PodDetails extends React.Component { @observable metrics: IPodMetrics; @observable containerMetrics: IPodMetrics; - constructor(props: Props) { + constructor(props: PodDetailsProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+workloads-pods/pod-tolerations.tsx b/src/renderer/components/+workloads-pods/pod-tolerations.tsx index c113f495e6..8eb41d8911 100644 --- a/src/renderer/components/+workloads-pods/pod-tolerations.tsx +++ b/src/renderer/components/+workloads-pods/pod-tolerations.tsx @@ -10,7 +10,7 @@ import uniqueId from "lodash/uniqueId"; import type { IToleration } from "../../../common/k8s-api/workload-kube-object"; import { Table, TableCell, TableHead, TableRow } from "../table"; -interface Props { +export interface PodTolerationsProps { tolerations: IToleration[]; } @@ -40,7 +40,7 @@ const getTableRow = (toleration: IToleration) => { ); }; -export function PodTolerations({ tolerations }: Props) { +export function PodTolerations({ tolerations }: PodTolerationsProps) { return ( { +export interface PodsProps extends RouteComponentProps { } @observer -export class Pods extends React.Component { +export class Pods extends React.Component { renderContainersStatus(pod: Pod) { return pod.getContainerStatuses().map(containerStatus => { const { name, state, ready } = containerStatus; diff --git a/src/renderer/components/+workloads-replicasets/replicaset-details.tsx b/src/renderer/components/+workloads-replicasets/replicaset-details.tsx index a5a46ac979..997f8c27f5 100644 --- a/src/renderer/components/+workloads-replicasets/replicaset-details.tsx +++ b/src/renderer/components/+workloads-replicasets/replicaset-details.tsx @@ -30,7 +30,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import kubeWatchApiInjectable from "../../kube-watch-api/kube-watch-api.injectable"; -interface Props extends KubeObjectDetailsProps { +export interface ReplicaSetDetailsProps extends KubeObjectDetailsProps { } interface Dependencies { @@ -38,10 +38,10 @@ interface Dependencies { } @observer -class NonInjectedReplicaSetDetails extends React.Component { +class NonInjectedReplicaSetDetails extends React.Component { @observable metrics: IPodMetrics = null; - constructor(props: Props & Dependencies) { + constructor(props: ReplicaSetDetailsProps & Dependencies) { super(props); makeObservable(this); } @@ -134,7 +134,7 @@ class NonInjectedReplicaSetDetails extends React.Component } } -export const ReplicaSetDetails = withInjectables( +export const ReplicaSetDetails = withInjectables( NonInjectedReplicaSetDetails, { diff --git a/src/renderer/components/+workloads-replicasets/replicaset-scale-dialog.tsx b/src/renderer/components/+workloads-replicasets/replicaset-scale-dialog.tsx index a9b8865d0c..b601e69f89 100644 --- a/src/renderer/components/+workloads-replicasets/replicaset-scale-dialog.tsx +++ b/src/renderer/components/+workloads-replicasets/replicaset-scale-dialog.tsx @@ -16,7 +16,7 @@ import { Notifications } from "../notifications"; import { cssNames } from "../../utils"; import { ReplicaSet, ReplicaSetApi, replicaSetApi } from "../../../common/k8s-api/endpoints/replica-set.api"; -interface Props extends Partial { +export interface ReplicaSetScaleDialogProps extends Partial { replicaSetApi: ReplicaSetApi; } @@ -26,7 +26,7 @@ const dialogState = observable.object({ }); @observer -export class ReplicaSetScaleDialog extends Component { +export class ReplicaSetScaleDialog extends Component { static defaultProps = { replicaSetApi, }; @@ -35,7 +35,7 @@ export class ReplicaSetScaleDialog extends Component { @observable currentReplicas = 0; @observable desiredReplicas = 0; - constructor(props: Props) { + constructor(props: ReplicaSetScaleDialogProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+workloads-replicasets/replicasets.tsx b/src/renderer/components/+workloads-replicasets/replicasets.tsx index be21604719..1a8b68898f 100644 --- a/src/renderer/components/+workloads-replicasets/replicasets.tsx +++ b/src/renderer/components/+workloads-replicasets/replicasets.tsx @@ -23,11 +23,11 @@ enum columnId { age = "age", } -interface Props extends RouteComponentProps { +export interface ReplicaSetsProps extends RouteComponentProps { } @observer -export class ReplicaSets extends React.Component { +export class ReplicaSets extends React.Component { render() { return ( { +export interface StatefulSetDetailsProps extends KubeObjectDetailsProps { } interface Dependencies { @@ -39,10 +39,10 @@ interface Dependencies { } @observer -class NonInjectedStatefulSetDetails extends React.Component { +class NonInjectedStatefulSetDetails extends React.Component { @observable metrics: IPodMetrics = null; - constructor(props: Props & Dependencies) { + constructor(props: StatefulSetDetailsProps & Dependencies) { super(props); makeObservable(this); } @@ -131,7 +131,7 @@ class NonInjectedStatefulSetDetails extends React.Component( +export const StatefulSetDetails = withInjectables( NonInjectedStatefulSetDetails, { diff --git a/src/renderer/components/+workloads-statefulsets/statefulset-scale-dialog.tsx b/src/renderer/components/+workloads-statefulsets/statefulset-scale-dialog.tsx index 66bf37dc8e..2f9d8067ff 100644 --- a/src/renderer/components/+workloads-statefulsets/statefulset-scale-dialog.tsx +++ b/src/renderer/components/+workloads-statefulsets/statefulset-scale-dialog.tsx @@ -16,7 +16,7 @@ import { Slider } from "../slider"; import { Notifications } from "../notifications"; import { cssNames } from "../../utils"; -interface Props extends Partial { +export interface StatefulSetScaleDialogProps extends Partial { statefulSetApi: StatefulSetApi; } @@ -26,7 +26,7 @@ const dialogState = observable.object({ }); @observer -export class StatefulSetScaleDialog extends Component { +export class StatefulSetScaleDialog extends Component { static defaultProps = { statefulSetApi, }; @@ -34,7 +34,7 @@ export class StatefulSetScaleDialog extends Component { @observable currentReplicas = 0; @observable desiredReplicas = 0; - constructor(props: Props) { + constructor(props: StatefulSetScaleDialogProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/+workloads-statefulsets/statefulsets.tsx b/src/renderer/components/+workloads-statefulsets/statefulsets.tsx index d7aa9e847f..135e563c4a 100644 --- a/src/renderer/components/+workloads-statefulsets/statefulsets.tsx +++ b/src/renderer/components/+workloads-statefulsets/statefulsets.tsx @@ -24,11 +24,11 @@ enum columnId { replicas = "replicas", } -interface Props extends RouteComponentProps { +export interface StatefulSetsProps extends RouteComponentProps { } @observer -export class StatefulSets extends React.Component { +export class StatefulSets extends React.Component { renderPods(statefulSet: StatefulSet) { const { readyReplicas, currentReplicas } = statefulSet.status; diff --git a/src/renderer/components/chart/bar-chart.tsx b/src/renderer/components/chart/bar-chart.tsx index d906b7b1c9..f53bed6e51 100644 --- a/src/renderer/components/chart/bar-chart.tsx +++ b/src/renderer/components/chart/bar-chart.tsx @@ -15,18 +15,18 @@ import { ZebraStripes } from "./zebra-stripes.plugin"; import { ThemeStore } from "../../theme.store"; import { NoMetrics } from "../resource-metrics/no-metrics"; -interface Props extends ChartProps { +export interface BarChartProps extends ChartProps { name?: string; timeLabelStep?: number; // Minute labels appearance step } -const defaultProps: Partial = { +const defaultProps: Partial = { timeLabelStep: 10, plugins: [ZebraStripes], }; @observer -export class BarChart extends React.Component { +export class BarChart extends React.Component { static defaultProps = defaultProps as object; render() { diff --git a/src/renderer/components/chart/pie-chart.tsx b/src/renderer/components/chart/pie-chart.tsx index 3c5f0a9e19..bc6cd318f3 100644 --- a/src/renderer/components/chart/pie-chart.tsx +++ b/src/renderer/components/chart/pie-chart.tsx @@ -11,11 +11,11 @@ import { Chart, ChartProps } from "./chart"; import { cssNames } from "../../utils"; import { ThemeStore } from "../../theme.store"; -interface Props extends ChartProps { +export interface PieChartProps extends ChartProps { } @observer -export class PieChart extends React.Component { +export class PieChart extends React.Component { render() { const { data, className, options, ...chartProps } = this.props; const { contentColor } = ThemeStore.getInstance().activeTheme.colors; diff --git a/src/renderer/components/cluster-manager/cluster-status.tsx b/src/renderer/components/cluster-manager/cluster-status.tsx index 408f45b1bb..e2e002c8b7 100644 --- a/src/renderer/components/cluster-manager/cluster-status.tsx +++ b/src/renderer/components/cluster-manager/cluster-status.tsx @@ -20,17 +20,17 @@ import type { KubeAuthUpdate } from "../../../common/cluster-types"; import { catalogEntityRegistry } from "../../api/catalog-entity-registry"; import { requestClusterActivation } from "../../ipc"; -interface Props { +export interface ClusterStatusProps { className?: IClassName; cluster: Cluster; } @observer -export class ClusterStatus extends React.Component { +export class ClusterStatus extends React.Component { @observable authOutput: KubeAuthUpdate[] = []; @observable isReconnecting = false; - constructor(props: Props) { + constructor(props: ClusterStatusProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/cluster-manager/cluster-view.tsx b/src/renderer/components/cluster-manager/cluster-view.tsx index 5187866ef3..7f4c50ddff 100644 --- a/src/renderer/components/cluster-manager/cluster-view.tsx +++ b/src/renderer/components/cluster-manager/cluster-view.tsx @@ -17,14 +17,14 @@ import { navigate } from "../../navigation"; import { catalogURL, ClusterViewRouteParams } from "../../../common/routes"; import { requestClusterActivation } from "../../ipc"; -interface Props extends RouteComponentProps { +export interface ClusterViewProps extends RouteComponentProps { } @observer -export class ClusterView extends React.Component { +export class ClusterView extends React.Component { private store = ClusterStore.getInstance(); - constructor(props: Props) { + constructor(props: ClusterViewProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/cluster-settings/components/cluster-accessible-namespaces.tsx b/src/renderer/components/cluster-settings/components/cluster-accessible-namespaces.tsx index 5948ba8b55..8dc11d622d 100644 --- a/src/renderer/components/cluster-settings/components/cluster-accessible-namespaces.tsx +++ b/src/renderer/components/cluster-settings/components/cluster-accessible-namespaces.tsx @@ -11,15 +11,15 @@ import { EditableList } from "../../editable-list"; import { observable, makeObservable } from "mobx"; import { systemName } from "../../input/input_validators"; -interface Props { +export interface ClusterAccessibleNamespacesProps { cluster: Cluster; } @observer -export class ClusterAccessibleNamespaces extends React.Component { +export class ClusterAccessibleNamespaces extends React.Component { @observable namespaces = new Set(this.props.cluster.accessibleNamespaces); - constructor(props: Props) { + constructor(props: ClusterAccessibleNamespacesProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/cluster-settings/components/cluster-icon-settings.tsx b/src/renderer/components/cluster-settings/components/cluster-icon-settings.tsx index 9c7834807e..ec4e3c3595 100644 --- a/src/renderer/components/cluster-settings/components/cluster-icon-settings.tsx +++ b/src/renderer/components/cluster-settings/components/cluster-icon-settings.tsx @@ -18,13 +18,13 @@ enum GeneralInputStatus { ERROR = "error", } -interface Props { +export interface ClusterIconSettingProps { cluster: Cluster; entity: KubernetesCluster; } @observer -export class ClusterIconSetting extends React.Component { +export class ClusterIconSetting extends React.Component { @observable status = GeneralInputStatus.CLEAN; @observable errorText?: string; diff --git a/src/renderer/components/cluster-settings/components/cluster-kubeconfig.tsx b/src/renderer/components/cluster-settings/components/cluster-kubeconfig.tsx index 0d91a3f861..b6b6db3b4b 100644 --- a/src/renderer/components/cluster-settings/components/cluster-kubeconfig.tsx +++ b/src/renderer/components/cluster-settings/components/cluster-kubeconfig.tsx @@ -11,12 +11,12 @@ import { boundMethod } from "../../../../common/utils"; import { shell } from "electron"; import { Notice } from "../../+extensions/notice"; -interface Props { +export interface ClusterKubeconfigProps { cluster: Cluster; } @observer -export class ClusterKubeconfig extends React.Component { +export class ClusterKubeconfig extends React.Component { @boundMethod openKubeconfig() { diff --git a/src/renderer/components/cluster-settings/components/cluster-local-terminal-settings.tsx b/src/renderer/components/cluster-settings/components/cluster-local-terminal-settings.tsx index f941b2cbdf..43c810a593 100644 --- a/src/renderer/components/cluster-settings/components/cluster-local-terminal-settings.tsx +++ b/src/renderer/components/cluster-settings/components/cluster-local-terminal-settings.tsx @@ -18,7 +18,7 @@ import type { Stats } from "fs"; import logger from "../../../../common/logger"; import { lowerFirst } from "lodash"; -interface Props { +export interface ClusterLocalTerminalSettingProps { cluster: Cluster; } @@ -80,7 +80,7 @@ async function validateDirectory(dir: string): Promise { } } -export const ClusterLocalTerminalSetting = observer(({ cluster }: Props) => { +export const ClusterLocalTerminalSetting = observer(({ cluster }: ClusterLocalTerminalSettingProps) => { if (!cluster) { return null; } diff --git a/src/renderer/components/cluster-settings/components/cluster-metrics-setting.tsx b/src/renderer/components/cluster-settings/components/cluster-metrics-setting.tsx index 4416a449ac..f67b233372 100644 --- a/src/renderer/components/cluster-settings/components/cluster-metrics-setting.tsx +++ b/src/renderer/components/cluster-settings/components/cluster-metrics-setting.tsx @@ -13,15 +13,15 @@ import type { Cluster } from "../../../../common/cluster/cluster"; import { observable, reaction, makeObservable } from "mobx"; import { ClusterMetricsResourceType } from "../../../../common/cluster-types"; -interface Props { +export interface ClusterMetricsSettingProps { cluster: Cluster; } @observer -export class ClusterMetricsSetting extends React.Component { +export class ClusterMetricsSetting extends React.Component { @observable hiddenMetrics = observable.set(); - constructor(props: Props) { + constructor(props: ClusterMetricsSettingProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/cluster-settings/components/cluster-name-setting.tsx b/src/renderer/components/cluster-settings/components/cluster-name-setting.tsx index 4802d79d41..bac6741268 100644 --- a/src/renderer/components/cluster-settings/components/cluster-name-setting.tsx +++ b/src/renderer/components/cluster-settings/components/cluster-name-setting.tsx @@ -12,16 +12,16 @@ import { SubTitle } from "../../layout/sub-title"; import { isRequired } from "../../input/input_validators"; import type { KubernetesCluster } from "../../../../common/catalog-entities"; -interface Props { +export interface ClusterNameSettingProps { cluster: Cluster; entity: KubernetesCluster; } @observer -export class ClusterNameSetting extends React.Component { +export class ClusterNameSetting extends React.Component { @observable name = ""; - constructor(props: Props) { + constructor(props: ClusterNameSettingProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/cluster-settings/components/cluster-node-shell-setting.tsx b/src/renderer/components/cluster-settings/components/cluster-node-shell-setting.tsx index b74d8e9479..f21b725226 100644 --- a/src/renderer/components/cluster-settings/components/cluster-node-shell-setting.tsx +++ b/src/renderer/components/cluster-settings/components/cluster-node-shell-setting.tsx @@ -12,16 +12,16 @@ import { observer } from "mobx-react"; import { Icon } from "../../icon/icon"; import { initialNodeShellImage } from "../../../../common/cluster-types"; -interface Props { +export interface ClusterNodeShellSettingProps { cluster: Cluster; } @observer -export class ClusterNodeShellSetting extends React.Component { +export class ClusterNodeShellSetting extends React.Component { @observable nodeShellImage = this.props.cluster.preferences?.nodeShellImage || ""; @observable imagePullSecret = this.props.cluster.preferences?.imagePullSecret || ""; - constructor(props: Props) { + constructor(props: ClusterNodeShellSettingProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/cluster-settings/components/cluster-prometheus-setting.tsx b/src/renderer/components/cluster-settings/components/cluster-prometheus-setting.tsx index 696b2756e4..a5a390cb79 100644 --- a/src/renderer/components/cluster-settings/components/cluster-prometheus-setting.tsx +++ b/src/renderer/components/cluster-settings/components/cluster-prometheus-setting.tsx @@ -14,12 +14,12 @@ import { productName } from "../../../../common/vars"; import { MetricProviderInfo, metricsApi } from "../../../../common/k8s-api/endpoints/metrics.api"; import { Spinner } from "../../spinner"; -interface Props { +export interface ClusterPrometheusSettingProps { cluster: Cluster; } @observer -export class ClusterPrometheusSetting extends React.Component { +export class ClusterPrometheusSetting extends React.Component { @observable path = ""; @observable provider = ""; @observable loading = true; @@ -32,7 +32,7 @@ export class ClusterPrometheusSetting extends React.Component { ]; } - constructor(props: Props) { + constructor(props: ClusterPrometheusSettingProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/cluster-settings/components/cluster-proxy-setting.tsx b/src/renderer/components/cluster-settings/components/cluster-proxy-setting.tsx index a156c0afe8..bdb6747748 100644 --- a/src/renderer/components/cluster-settings/components/cluster-proxy-setting.tsx +++ b/src/renderer/components/cluster-settings/components/cluster-proxy-setting.tsx @@ -10,15 +10,15 @@ import type { Cluster } from "../../../../common/cluster/cluster"; import { Input, InputValidators } from "../../input"; import { SubTitle } from "../../layout/sub-title"; -interface Props { +export interface ClusterProxySettingProps { cluster: Cluster; } @observer -export class ClusterProxySetting extends React.Component { +export class ClusterProxySetting extends React.Component { @observable proxy = ""; - constructor(props: Props) { + constructor(props: ClusterProxySettingProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/cluster-settings/components/cluster-show-metrics.tsx b/src/renderer/components/cluster-settings/components/cluster-show-metrics.tsx index 235966aa59..29bfcd2e21 100644 --- a/src/renderer/components/cluster-settings/components/cluster-show-metrics.tsx +++ b/src/renderer/components/cluster-settings/components/cluster-show-metrics.tsx @@ -11,15 +11,15 @@ import { Badge } from "../../badge/badge"; import { Icon } from "../../icon/icon"; import { Notice } from "../../+extensions/notice"; -interface Props { +export interface ShowMetricsSettingProps { cluster: Cluster; } @observer -export class ShowMetricsSetting extends React.Component { +export class ShowMetricsSetting extends React.Component { @observable hiddenMetrics = observable.set(); - constructor(props: Props) { + constructor(props: ShowMetricsSettingProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/delete-cluster-dialog/delete-cluster-dialog.tsx b/src/renderer/components/delete-cluster-dialog/delete-cluster-dialog.tsx index f0733eb2c4..a49dcde13e 100644 --- a/src/renderer/components/delete-cluster-dialog/delete-cluster-dialog.tsx +++ b/src/renderer/components/delete-cluster-dialog/delete-cluster-dialog.tsx @@ -21,24 +21,24 @@ import { Select } from "../select"; import { Checkbox } from "../checkbox"; import { requestClearClusterAsDeleting, requestDeleteCluster, requestSetClusterAsDeleting } from "../../ipc"; -type DialogState = { +interface DialogState { isOpen: boolean; config?: KubeConfig; cluster?: Cluster; -}; +} const dialogState: DialogState = observable({ isOpen: false, }); -type Props = {}; +export interface DeleteClusterDialogProps {} @observer -export class DeleteClusterDialog extends React.Component { +export class DeleteClusterDialog extends React.Component { @observable showContextSwitch = false; @observable newCurrentContext = ""; - constructor(props: Props) { + constructor(props: DeleteClusterDialogProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/dialog/logs-dialog.tsx b/src/renderer/components/dialog/logs-dialog.tsx index 57abcf6618..a46cdf0a78 100644 --- a/src/renderer/components/dialog/logs-dialog.tsx +++ b/src/renderer/components/dialog/logs-dialog.tsx @@ -15,12 +15,12 @@ import { clipboard } from "electron"; // todo: make as external BrowserWindow (?) -interface Props extends DialogProps { +export interface LogsDialogProps extends DialogProps { title: string; logs: string; } -export class LogsDialog extends React.Component { +export class LogsDialog extends React.Component { public logsElem: HTMLElement; copyToClipboard = () => { diff --git a/src/renderer/components/dock/create-resource/view.tsx b/src/renderer/components/dock/create-resource/view.tsx index 5c27c0e06d..d30d819851 100644 --- a/src/renderer/components/dock/create-resource/view.tsx +++ b/src/renderer/components/dock/create-resource/view.tsx @@ -25,7 +25,7 @@ import createResourceTabStoreInjectable from "./store.injectable"; import createResourceTemplatesInjectable from "./create-resource-templates.injectable"; import { Spinner } from "../../spinner"; -interface Props { +export interface CreateResourceProps { tab: DockTab; } @@ -35,10 +35,10 @@ interface Dependencies { } @observer -class NonInjectedCreateResource extends React.Component { +class NonInjectedCreateResource extends React.Component { @observable error = ""; - constructor(props: Props & Dependencies) { + constructor(props: CreateResourceProps & Dependencies) { super(props); makeObservable(this); } @@ -143,7 +143,7 @@ class NonInjectedCreateResource extends React.Component { } } -export const CreateResource = withInjectables(NonInjectedCreateResource, { +export const CreateResource = withInjectables(NonInjectedCreateResource, { getPlaceholder: () => , getProps: async (di, props) => ({ diff --git a/src/renderer/components/dock/dock-tabs.tsx b/src/renderer/components/dock/dock-tabs.tsx index e3d87fe84b..f988ae426c 100644 --- a/src/renderer/components/dock/dock-tabs.tsx +++ b/src/renderer/components/dock/dock-tabs.tsx @@ -12,14 +12,14 @@ import type { DockTab as DockTabModel } from "./dock/store"; import { TabKind } from "./dock/store"; import { TerminalTab } from "./terminal/dock-tab"; -interface Props { +export interface DockTabsProps { tabs: DockTabModel[]; autoFocus: boolean; selectedTab: DockTabModel; onChangeTab: (tab: DockTabModel) => void; } -export const DockTabs = ({ tabs, autoFocus, selectedTab, onChangeTab }: Props) => { +export const DockTabs = ({ tabs, autoFocus, selectedTab, onChangeTab }: DockTabsProps) => { const renderTab = (tab?: DockTabModel) => { if (!tab) { return null; diff --git a/src/renderer/components/dock/dock.tsx b/src/renderer/components/dock/dock.tsx index 049c3268c9..ca61b3ba93 100644 --- a/src/renderer/components/dock/dock.tsx +++ b/src/renderer/components/dock/dock.tsx @@ -27,7 +27,7 @@ import dockStoreInjectable from "./dock/store.injectable"; import createTerminalTabInjectable from "./terminal/create-terminal-tab.injectable"; import { ErrorBoundary } from "../error-boundary"; -interface Props { +export interface DockProps { className?: string; } @@ -38,7 +38,7 @@ interface Dependencies { } @observer -class NonInjectedDock extends React.Component { +class NonInjectedDock extends React.Component { private element = React.createRef(); componentDidMount() { @@ -169,7 +169,7 @@ class NonInjectedDock extends React.Component { } } -export const Dock = withInjectables( +export const Dock = withInjectables( NonInjectedDock, { diff --git a/src/renderer/components/dock/edit-resource/view.tsx b/src/renderer/components/dock/edit-resource/view.tsx index aa23af9cea..61d2ffa2ef 100644 --- a/src/renderer/components/dock/edit-resource/view.tsx +++ b/src/renderer/components/dock/edit-resource/view.tsx @@ -20,7 +20,7 @@ import editResourceTabStoreInjectable from "./store.injectable"; import { noop } from "../../../utils"; import closeDockTabInjectable from "../dock/close-dock-tab.injectable"; -interface Props { +export interface EditResourceProps { tab: DockTab; } @@ -30,10 +30,10 @@ interface Dependencies { } @observer -class NonInjectedEditResource extends React.Component { +class NonInjectedEditResource extends React.Component { @observable error = ""; - constructor(props: Props & Dependencies) { + constructor(props: EditResourceProps & Dependencies) { super(props); makeObservable(this); } @@ -153,7 +153,7 @@ class NonInjectedEditResource extends React.Component { } } -export const EditResource = withInjectables(NonInjectedEditResource, { +export const EditResource = withInjectables(NonInjectedEditResource, { getProps: (di, props) => ({ editResourceStore: di.inject(editResourceTabStoreInjectable), closeTab: di.inject(closeDockTabInjectable), diff --git a/src/renderer/components/dock/info-panel.tsx b/src/renderer/components/dock/info-panel.tsx index f075b3c438..28d68e1f39 100644 --- a/src/renderer/components/dock/info-panel.tsx +++ b/src/renderer/components/dock/info-panel.tsx @@ -17,12 +17,12 @@ import { Notifications } from "../notifications"; import { withInjectables } from "@ogre-tools/injectable-react"; import dockStoreInjectable from "./dock/store.injectable"; -interface Props extends OptionalProps { +export interface InfoPanelProps extends OptionalProps { tabId: TabId; submit?: () => Promise; } -interface OptionalProps { +export interface OptionalProps { className?: string; error?: string; controls?: ReactNode; @@ -41,7 +41,7 @@ interface Dependencies { } @observer -class NonInjectedInfoPanel extends Component { +class NonInjectedInfoPanel extends Component { static defaultProps: OptionalProps = { submitLabel: "Submit", submittingMessage: "Submitting..", @@ -55,7 +55,7 @@ class NonInjectedInfoPanel extends Component { @observable error = ""; @observable waiting = false; - constructor(props: Props & Dependencies) { + constructor(props: InfoPanelProps & Dependencies) { super(props); makeObservable(this); } @@ -150,7 +150,7 @@ class NonInjectedInfoPanel extends Component { } } -export const InfoPanel = withInjectables( +export const InfoPanel = withInjectables( NonInjectedInfoPanel, { diff --git a/src/renderer/components/dock/install-chart/view.tsx b/src/renderer/components/dock/install-chart/view.tsx index a93bbebd02..897f15d450 100644 --- a/src/renderer/components/dock/install-chart/view.tsx +++ b/src/renderer/components/dock/install-chart/view.tsx @@ -30,7 +30,7 @@ import dockStoreInjectable from "../dock/store.injectable"; import createReleaseInjectable from "../../+helm-releases/create-release/create-release.injectable"; import { Notifications } from "../../notifications"; -interface Props { +export interface InstallCharProps { tab: DockTab; } @@ -41,11 +41,11 @@ interface Dependencies { } @observer -class NonInjectedInstallChart extends Component { +class NonInjectedInstallChart extends Component { @observable error = ""; @observable showNotes = false; - constructor(props: Props & Dependencies) { + constructor(props: InstallCharProps & Dependencies) { super(props); makeObservable(this); } @@ -218,7 +218,7 @@ class NonInjectedInstallChart extends Component { } } -export const InstallChart = withInjectables( +export const InstallChart = withInjectables( NonInjectedInstallChart, { diff --git a/src/renderer/components/dock/terminal/dock-tab.tsx b/src/renderer/components/dock/terminal/dock-tab.tsx index 5538ff5c23..dda2a37aca 100644 --- a/src/renderer/components/dock/terminal/dock-tab.tsx +++ b/src/renderer/components/dock/terminal/dock-tab.tsx @@ -16,7 +16,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import dockStoreInjectable from "../dock/store.injectable"; import terminalStoreInjectable from "./store.injectable"; -interface Props extends DockTabProps { +export interface TerminalTabProps extends DockTabProps { } interface Dependencies { @@ -25,7 +25,7 @@ interface Dependencies { } @observer -class NonInjectedTerminalTab extends React.Component { +class NonInjectedTerminalTab extends React.Component { componentDidMount() { reaction(() => this.isDisconnected === true, () => { this.props.dockStore.closeTab(this.tabId); @@ -72,7 +72,7 @@ class NonInjectedTerminalTab extends React.Component { } } -export const TerminalTab = withInjectables(NonInjectedTerminalTab, { +export const TerminalTab = withInjectables(NonInjectedTerminalTab, { getProps: (di, props) => ({ dockStore: di.inject(dockStoreInjectable), terminalStore: di.inject(terminalStoreInjectable), diff --git a/src/renderer/components/dock/terminal/view.tsx b/src/renderer/components/dock/terminal/view.tsx index f1e0279539..ec58a2a83b 100644 --- a/src/renderer/components/dock/terminal/view.tsx +++ b/src/renderer/components/dock/terminal/view.tsx @@ -16,7 +16,7 @@ import { withInjectables } from "@ogre-tools/injectable-react"; import dockStoreInjectable from "../dock/store.injectable"; import terminalStoreInjectable from "./store.injectable"; -interface Props { +export interface TerminalWindowProps { tab: DockTab; } @@ -26,7 +26,7 @@ interface Dependencies { } @observer -class NonInjectedTerminalWindow extends React.Component { +class NonInjectedTerminalWindow extends React.Component { public elem: HTMLElement; public terminal: Terminal; @@ -64,7 +64,7 @@ class NonInjectedTerminalWindow extends React.Component { } } -export const TerminalWindow = withInjectables(NonInjectedTerminalWindow, { +export const TerminalWindow = withInjectables(NonInjectedTerminalWindow, { getProps: (di, props) => ({ dockStore: di.inject(dockStoreInjectable), terminalStore: di.inject(terminalStoreInjectable), diff --git a/src/renderer/components/dock/upgrade-chart/view.tsx b/src/renderer/components/dock/upgrade-chart/view.tsx index 2aaa8bbdaa..4e157726b5 100644 --- a/src/renderer/components/dock/upgrade-chart/view.tsx +++ b/src/renderer/components/dock/upgrade-chart/view.tsx @@ -23,7 +23,7 @@ import upgradeChartTabStoreInjectable from "./store.injectable"; import updateReleaseInjectable from "../../+helm-releases/update-release/update-release.injectable"; import releasesInjectable from "../../+helm-releases/releases.injectable"; -interface Props { +export interface UpgradeChartProps { className?: string; tab: DockTab; } @@ -35,12 +35,12 @@ interface Dependencies { } @observer -export class NonInjectedUpgradeChart extends React.Component { +export class NonInjectedUpgradeChart extends React.Component { @observable error: string; @observable versions = observable.array(); @observable version: IChartVersion; - constructor(props: Props & Dependencies) { + constructor(props: UpgradeChartProps & Dependencies) { super(props); makeObservable(this); } @@ -179,7 +179,7 @@ export class NonInjectedUpgradeChart extends React.Component(NonInjectedUpgradeChart, { +export const UpgradeChart = withInjectables(NonInjectedUpgradeChart, { getProps: (di, props) => ({ releases: di.inject(releasesInjectable), updateRelease: di.inject(updateReleaseInjectable), diff --git a/src/renderer/components/editable-list/editable-list.tsx b/src/renderer/components/editable-list/editable-list.tsx index 44913e3f86..c712d44974 100644 --- a/src/renderer/components/editable-list/editable-list.tsx +++ b/src/renderer/components/editable-list/editable-list.tsx @@ -12,7 +12,7 @@ import { Icon } from "../icon"; import { Input, InputProps, InputValidator } from "../input"; import { boundMethod } from "../../utils"; -export interface Props { +export interface EditableListProps { items: T[]; add: (newItem: string) => void; remove: (info: { oldItem: T; index: number }) => void; @@ -25,15 +25,15 @@ export interface Props { inputTheme?: InputProps["theme"]; } -const defaultProps: Partial> = { +const defaultProps: Partial> = { placeholder: "Add new item...", renderItem: (item: any, index: number) => {item}, inputTheme: "round", }; @observer -export class EditableList extends React.Component> { - static defaultProps = defaultProps as Props; +export class EditableList extends React.Component> { + static defaultProps = defaultProps as EditableListProps; @boundMethod onSubmit(val: string, evt: React.KeyboardEvent) { diff --git a/src/renderer/components/error-boundary/error-boundary.tsx b/src/renderer/components/error-boundary/error-boundary.tsx index 4c4cca2b51..e4bf9aa63b 100644 --- a/src/renderer/components/error-boundary/error-boundary.tsx +++ b/src/renderer/components/error-boundary/error-boundary.tsx @@ -11,7 +11,7 @@ import { Button } from "../button"; import { navigation } from "../../navigation"; import { issuesTrackerUrl, slackUrl } from "../../../common/vars"; -interface Props { +export interface ErrorBoundaryProps { } interface State { @@ -20,7 +20,7 @@ interface State { } @observer -export class ErrorBoundary extends React.Component { +export class ErrorBoundary extends React.Component { public state: State = {}; componentDidCatch(error: Error, errorInfo: ErrorInfo) { diff --git a/src/renderer/components/file-picker/file-picker.tsx b/src/renderer/components/file-picker/file-picker.tsx index 5c622bc6d6..e89f7b75d5 100644 --- a/src/renderer/components/file-picker/file-picker.tsx +++ b/src/renderer/components/file-picker/file-picker.tsx @@ -69,9 +69,9 @@ export interface BaseProps { onOverTotalSizeLimit?: OverTotalSizeLimitStyle; } -export type Props = BaseProps & (MemoryUseProps | FileUploadProps); +export type FilePickerProps = BaseProps & (MemoryUseProps | FileUploadProps); -const defaultProps: Partial = { +const defaultProps: Partial = { maxSize: Infinity, onOverSizeLimit: OverSizeLimitStyle.REJECT, maxTotalSize: Infinity, @@ -80,13 +80,13 @@ const defaultProps: Partial = { }; @observer -export class FilePicker extends React.Component { +export class FilePicker extends React.Component { static defaultProps = defaultProps as Object; @observable status = FileInputStatus.CLEAR; @observable errorText?: string; - constructor(props: Props) { + constructor(props: FilePickerProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/hotbar/hotbar-cell.tsx b/src/renderer/components/hotbar/hotbar-cell.tsx index a35f35a02a..8baa14b17a 100644 --- a/src/renderer/components/hotbar/hotbar-cell.tsx +++ b/src/renderer/components/hotbar/hotbar-cell.tsx @@ -8,13 +8,13 @@ import React, { HTMLAttributes, ReactNode, useState } from "react"; import { cssNames } from "../../utils"; -interface Props extends HTMLAttributes { +export interface HotbarCellProps extends HTMLAttributes { children?: ReactNode; index: number; innerRef?: React.Ref; } -export function HotbarCell({ innerRef, children, className, ...rest }: Props) { +export function HotbarCell({ innerRef, children, className, ...rest }: HotbarCellProps) { const [animating, setAnimating] = useState(false); const onAnimationEnd = () => { setAnimating(false); }; const onClick = () => { diff --git a/src/renderer/components/hotbar/hotbar-entity-icon.tsx b/src/renderer/components/hotbar/hotbar-entity-icon.tsx index 58b3e8f18e..8bc4572050 100644 --- a/src/renderer/components/hotbar/hotbar-entity-icon.tsx +++ b/src/renderer/components/hotbar/hotbar-entity-icon.tsx @@ -18,7 +18,7 @@ import { Icon } from "../icon"; import { HotbarIcon } from "./hotbar-icon"; import { LensKubernetesClusterStatus } from "../../../common/catalog-entities/kubernetes-cluster"; -interface Props extends HTMLAttributes { +export interface HotbarEntityIconProps extends HTMLAttributes { entity: CatalogEntity; index: number; errorClass?: IClassName; @@ -28,13 +28,13 @@ interface Props extends HTMLAttributes { } @observer -export class HotbarEntityIcon extends React.Component { +export class HotbarEntityIcon extends React.Component { @observable private contextMenu: CatalogEntityContextMenuContext = { menuItems: [], navigate: (url: string) => navigate(url), }; - constructor(props: Props) { + constructor(props: HotbarEntityIconProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/hotbar/hotbar-icon.tsx b/src/renderer/components/hotbar/hotbar-icon.tsx index f22b30c66e..e4b09d14a9 100644 --- a/src/renderer/components/hotbar/hotbar-icon.tsx +++ b/src/renderer/components/hotbar/hotbar-icon.tsx @@ -16,7 +16,7 @@ import { Avatar, AvatarProps } from "../avatar"; import { Icon } from "../icon"; import { Tooltip } from "../tooltip"; -export interface Props extends AvatarProps { +export interface HotbarIconProps extends AvatarProps { uid: string; source: string; material?: string; @@ -44,7 +44,7 @@ function onMenuItemClick(menuItem: CatalogEntityContextMenu) { } } -export const HotbarIcon = observer(({ menuItems = [], size = 40, tooltip, ...props }: Props) => { +export const HotbarIcon = observer(({ menuItems = [], size = 40, tooltip, ...props }: HotbarIconProps) => { const { uid, title, src, material, active, className, source, disabled, onMenuOpen, onClick, children, ...rest } = props; const id = `hotbarIcon-${uid}`; const [menuOpen, setMenuOpen] = useState(false); diff --git a/src/renderer/components/hotbar/hotbar-menu.tsx b/src/renderer/components/hotbar/hotbar-menu.tsx index 870b9e0eee..d994d7536c 100644 --- a/src/renderer/components/hotbar/hotbar-menu.tsx +++ b/src/renderer/components/hotbar/hotbar-menu.tsx @@ -19,15 +19,15 @@ import { HotbarIcon } from "./hotbar-icon"; import { defaultHotbarCells, HotbarItem } from "../../../common/hotbar-types"; import { action, makeObservable, observable } from "mobx"; -interface Props { +export interface HotbarMenuProps { className?: IClassName; } @observer -export class HotbarMenu extends React.Component { +export class HotbarMenu extends React.Component { @observable draggingOver = false; - constructor(props: Props) { + constructor(props: HotbarMenuProps) { super(props); makeObservable(this); } diff --git a/src/renderer/components/input/file-input.tsx b/src/renderer/components/input/file-input.tsx index b054d57ed3..6649a00332 100644 --- a/src/renderer/components/input/file-input.tsx +++ b/src/renderer/components/input/file-input.tsx @@ -11,7 +11,7 @@ export interface FileInputSelection { error?: string; } -interface Props extends InputHTMLAttributes { +export interface FileInputProps extends InputHTMLAttributes { id?: string; // could be used with