diff --git a/src/renderer/components/+helm-releases/releases.scss b/src/renderer/components/+helm-releases/releases.scss index 589bd37541..04955a60eb 100644 --- a/src/renderer/components/+helm-releases/releases.scss +++ b/src/renderer/components/+helm-releases/releases.scss @@ -20,5 +20,9 @@ } } } + + a.filterNamespace { + border-bottom: unset; + } } } diff --git a/src/renderer/components/+helm-releases/releases.tsx b/src/renderer/components/+helm-releases/releases.tsx index 7b5fd99dac..5714c92fd1 100644 --- a/src/renderer/components/+helm-releases/releases.tsx +++ b/src/renderer/components/+helm-releases/releases.tsx @@ -9,7 +9,6 @@ import "./releases.scss"; import React, { Component } from "react"; import type { HelmRelease } from "../../../common/k8s-api/endpoints/helm-releases.api"; import { withInjectables } from "@ogre-tools/injectable-react"; -import namespaceStoreInjectable from "../+namespaces/store.injectable"; import type { ItemListStore } from "../item-object-list"; import { ItemListLayout } from "../item-object-list"; import { NamespaceSelectFilter } from "../+namespaces/namespace-select-filter"; @@ -24,6 +23,9 @@ import { SiblingsInTabLayout } from "../layout/siblings-in-tab-layout"; import helmReleasesRouteParametersInjectable from "./helm-releases-route-parameters.injectable"; import type { NavigateToHelmReleases } from "../../../common/front-end-routing/routes/cluster/helm/releases/navigate-to-helm-releases.injectable"; import navigateToHelmReleasesInjectable from "../../../common/front-end-routing/routes/cluster/helm/releases/navigate-to-helm-releases.injectable"; +import { prevDefault } from "../../utils"; +import type { FilterByNamespace } from "../+namespaces/namespace-select-filter-model/filter-by-namespace.injectable"; +import filterByNamespaceInjectable from "../+namespaces/namespace-select-filter-model/filter-by-namespace.injectable"; enum columnId { name = "name", @@ -39,9 +41,9 @@ enum columnId { interface Dependencies { releases: IComputedValue; releasesArePending: IComputedValue; - selectNamespace: (namespace: string) => void; namespace: IComputedValue; navigateToHelmReleases: NavigateToHelmReleases; + filterByNamespace: FilterByNamespace; } class NonInjectedHelmReleases extends Component { @@ -50,7 +52,7 @@ class NonInjectedHelmReleases extends Component { const namespace = this.props.namespace.get(); if (namespace) { - this.props.selectNamespace(namespace); + this.props.filterByNamespace(namespace); } } @@ -186,7 +188,13 @@ class NonInjectedHelmReleases extends Component { ]} renderTableContents={release => [ release.getName(), - release.getNs(), + this.props.filterByNamespace(release.getNs()))} + > + {release.getNs()} + , release.getChart(), release.getRevision(), release.getVersion(), @@ -213,20 +221,12 @@ class NonInjectedHelmReleases extends Component { } } -export const HelmReleases = withInjectables( - NonInjectedHelmReleases, - - { - getProps: (di) => { - const routeParameters = di.inject(helmReleasesRouteParametersInjectable); - - return { - releases: di.inject(removableReleasesInjectable), - releasesArePending: di.inject(releasesInjectable).pending, - selectNamespace: di.inject(namespaceStoreInjectable).selectNamespaces, - navigateToHelmReleases: di.inject(navigateToHelmReleasesInjectable), - namespace: routeParameters.namespace, - }; - }, - }, -); +export const HelmReleases = withInjectables(NonInjectedHelmReleases, { + getProps: (di) => ({ + releases: di.inject(removableReleasesInjectable), + releasesArePending: di.inject(releasesInjectable).pending, + navigateToHelmReleases: di.inject(navigateToHelmReleasesInjectable), + filterByNamespace: di.inject(filterByNamespaceInjectable), + ...di.inject(helmReleasesRouteParametersInjectable), + }), +});