From e048cf9062969e4458bec9c13865245585d71cf3 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Thu, 3 Jun 2021 14:47:21 -0400 Subject: [PATCH] Move to KubeObjectListLayout Signed-off-by: Sebastian Malton --- .../item-object-list/item-list-layout.tsx | 22 ++----------------- .../kube-object/kube-object-list-layout.tsx | 10 +++++++++ 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/renderer/components/item-object-list/item-list-layout.tsx b/src/renderer/components/item-object-list/item-list-layout.tsx index 9c66f9f734..775a8ac794 100644 --- a/src/renderer/components/item-object-list/item-list-layout.tsx +++ b/src/renderer/components/item-object-list/item-list-layout.tsx @@ -36,14 +36,12 @@ import { SearchInputUrl } from "../input"; import { Filter, FilterType, pageFilters } from "./page-filters.store"; import { PageFiltersList } from "./page-filters-list"; import { PageFiltersSelect } from "./page-filters-select"; -import { NamespaceSelectFilter } from "../+namespaces/namespace-select-filter"; import { ThemeStore } from "../../theme.store"; import { MenuActions } from "../menu/menu-actions"; import { MenuItem } from "../menu"; import { Checkbox } from "../checkbox"; import { UserStore } from "../../../common/user-store"; import { namespaceStore } from "../+namespaces/namespace.store"; -import { KubeObjectStore } from "../../kube-object.store"; // todo: refactor, split to small re-usable components @@ -191,21 +189,6 @@ export class ItemListLayout extends React.Component { }, }; - @computed get isNamespaced(): boolean { - const { store, dependentStores = [] } = this.props; - const stores = new Set([store, ...dependentStores]); - - for (const store of stores) { - if (store instanceof KubeObjectStore) { - if (store.api.isNamespaced) { - return true; - } - } - } - - return false; - } - @computed get isReady() { return this.props.isReady ?? this.props.store.isLoaded; } @@ -412,12 +395,11 @@ export class ItemListLayout extends React.Component { const placeholders: IHeaderPlaceholders = { title:
{title}
, info: this.renderInfo(), - filters: <> - {this.isNamespaced && } + filters: ( - , + ), search: , }; let header = this.renderHeaderContent(placeholders); diff --git a/src/renderer/components/kube-object/kube-object-list-layout.tsx b/src/renderer/components/kube-object/kube-object-list-layout.tsx index 52c886f6a2..8c0bc067dc 100644 --- a/src/renderer/components/kube-object/kube-object-list-layout.tsx +++ b/src/renderer/components/kube-object/kube-object-list-layout.tsx @@ -30,6 +30,7 @@ import { KubeObjectMenu } from "./kube-object-menu"; import { kubeSelectedUrlParam, showDetails } from "./kube-object-details"; import { kubeWatchApi } from "../../api/kube-watch-api"; import { clusterContext } from "../context"; +import { NamespaceSelectFilter } from "../+namespaces/namespace-select-filter"; export interface KubeObjectListLayoutProps extends ItemListLayoutProps { store: KubeObjectStore; @@ -76,6 +77,15 @@ export class KubeObjectListLayout extends React.Component ({ + filters: ( + <> + {store.api.isNamespaced && } + {filters} + + ), + ...placeholders, + })} renderItemMenu={(item: KubeObject) => } // safe because we are dealing with KubeObjects here /> );