From 97463099498d1e04d89dd8ca501b4216ca6ec43d Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Fri, 21 Jan 2022 14:35:15 -0500 Subject: [PATCH] flatten file heirarchy Signed-off-by: Sebastian Malton --- .../+apps-helm-charts/helm-charts.tsx | 2 +- .../+network-port-forwards/port-forwards.tsx | 2 +- ...em-list-layout-content.tsx => content.tsx} | 28 +++++----- .../components/item-object-list/filters.tsx | 29 ++++++++++ .../item-object-list/header-filters.tsx | 17 ++++++ .../item-object-list/header-info.tsx | 54 +++++++++++++++++++ .../item-object-list/header-search.tsx | 27 ++++++++++ ...yout-header-title.tsx => header-title.tsx} | 2 +- ...item-list-layout-header.tsx => header.tsx} | 32 ++++++----- .../components/item-object-list/index.tsx | 2 +- .../item-list-layout-filters.tsx | 32 ----------- .../item-list-layout-header-filters.tsx | 17 ------ .../item-list-layout-header-info.tsx | 53 ------------------ .../item-list-layout-header-search.tsx | 32 ----------- .../{item-list-layout.tsx => list-layout.tsx} | 46 +++++++--------- ...ge.injectable.ts => storage.injectable.ts} | 2 +- .../kube-object-list-layout.tsx | 2 +- 17 files changed, 183 insertions(+), 196 deletions(-) rename src/renderer/components/item-object-list/{item-list-layout-content/item-list-layout-content.tsx => content.tsx} (91%) create mode 100644 src/renderer/components/item-object-list/filters.tsx create mode 100644 src/renderer/components/item-object-list/header-filters.tsx create mode 100644 src/renderer/components/item-object-list/header-info.tsx create mode 100644 src/renderer/components/item-object-list/header-search.tsx rename src/renderer/components/item-object-list/{item-list-layout-header/item-list-layout-header-title/item-list-layout-header-title.tsx => header-title.tsx} (91%) rename src/renderer/components/item-object-list/{item-list-layout-header/item-list-layout-header.tsx => header.tsx} (64%) delete mode 100644 src/renderer/components/item-object-list/item-list-layout-filters/item-list-layout-filters.tsx delete mode 100644 src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-filters/item-list-layout-header-filters.tsx delete mode 100644 src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-info/item-list-layout-header-info.tsx delete mode 100644 src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-search/item-list-layout-header-search.tsx rename src/renderer/components/item-object-list/{item-list-layout.tsx => list-layout.tsx} (90%) rename src/renderer/components/item-object-list/{item-list-layout-storage/item-list-layout-storage.injectable.ts => storage.injectable.ts} (85%) diff --git a/src/renderer/components/+apps-helm-charts/helm-charts.tsx b/src/renderer/components/+apps-helm-charts/helm-charts.tsx index 36b84d5267..49f885a093 100644 --- a/src/renderer/components/+apps-helm-charts/helm-charts.tsx +++ b/src/renderer/components/+apps-helm-charts/helm-charts.tsx @@ -12,7 +12,7 @@ import { helmChartStore } from "./helm-chart.store"; import type { HelmChart } from "../../../common/k8s-api/endpoints/helm-charts.api"; import { HelmChartDetails } from "./helm-chart-details"; import { navigation } from "../../navigation"; -import { ItemListLayout } from "../item-object-list/item-list-layout"; +import { ItemListLayout } from "../item-object-list/list-layout"; import { helmChartsURL } from "../../../common/routes"; import type { HelmChartsRouteParams } from "../../../common/routes"; diff --git a/src/renderer/components/+network-port-forwards/port-forwards.tsx b/src/renderer/components/+network-port-forwards/port-forwards.tsx index b3e7e4c1f3..9ceeadba38 100644 --- a/src/renderer/components/+network-port-forwards/port-forwards.tsx +++ b/src/renderer/components/+network-port-forwards/port-forwards.tsx @@ -8,7 +8,7 @@ import "./port-forwards.scss"; import React from "react"; import { disposeOnUnmount, observer } from "mobx-react"; import type { RouteComponentProps } from "react-router-dom"; -import { ItemListLayout } from "../item-object-list/item-list-layout"; +import { ItemListLayout } from "../item-object-list/list-layout"; import type { PortForwardItem, PortForwardStore } from "../../port-forward"; import { PortForwardMenu } from "./port-forward-menu"; import { PortForwardsRouteParams, portForwardsURL } from "../../../common/routes"; diff --git a/src/renderer/components/item-object-list/item-list-layout-content/item-list-layout-content.tsx b/src/renderer/components/item-object-list/content.tsx similarity index 91% rename from src/renderer/components/item-object-list/item-list-layout-content/item-list-layout-content.tsx rename to src/renderer/components/item-object-list/content.tsx index b8e716ce8b..ccfdddd7d3 100644 --- a/src/renderer/components/item-object-list/item-list-layout-content/item-list-layout-content.tsx +++ b/src/renderer/components/item-object-list/content.tsx @@ -3,24 +3,24 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import "../item-list-layout.scss"; +import "./item-list-layout.scss"; import React, { ReactNode } from "react"; import { computed, makeObservable } from "mobx"; import { observer } from "mobx-react"; -import { ConfirmDialog, ConfirmDialogParams } from "../../confirm-dialog"; -import { Table, TableCell, TableCellProps, TableHead, TableProps, TableRow, TableRowProps, TableSortCallbacks } from "../../table"; -import { boundMethod, cssNames, IClassName, isReactNode, prevDefault, stopPropagation } from "../../../utils"; -import { AddRemoveButtons, AddRemoveButtonsProps } from "../../add-remove-buttons"; -import { NoItems } from "../../no-items"; -import { Spinner } from "../../spinner"; -import type { ItemObject, ItemStore } from "../../../../common/item.store"; -import { Filter, pageFilters } from "../page-filters.store"; -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 { ConfirmDialog, ConfirmDialogParams } from "../confirm-dialog"; +import { Table, TableCell, TableCellProps, TableHead, TableProps, TableRow, TableRowProps, TableSortCallbacks } from "../table"; +import { boundMethod, cssNames, IClassName, isReactNode, prevDefault, stopPropagation } from "../../utils"; +import { AddRemoveButtons, AddRemoveButtonsProps } from "../add-remove-buttons"; +import { NoItems } from "../no-items"; +import { Spinner } from "../spinner"; +import type { ItemObject, ItemStore } from "../../../common/item.store"; +import { Filter, pageFilters } from "./page-filters.store"; +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"; interface ItemListLayoutContentProps { getFilters: () => Filter[] diff --git a/src/renderer/components/item-object-list/filters.tsx b/src/renderer/components/item-object-list/filters.tsx new file mode 100644 index 0000000000..5dd3c13dc2 --- /dev/null +++ b/src/renderer/components/item-object-list/filters.tsx @@ -0,0 +1,29 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ + +import "./item-list-layout.scss"; + +import React from "react"; +import { PageFiltersList } from "./page-filters-list"; +import { observer } from "mobx-react"; +import type { Filter } from "./page-filters.store"; + +export interface ItemListLayoutFilterProps { + getIsReady: () => boolean + getFilters: () => Filter[] + getFiltersAreShown: () => boolean + hideFilters: boolean +} + +export const ItemListLayoutFilters = observer(({ getFilters, getFiltersAreShown, getIsReady, hideFilters }: ItemListLayoutFilterProps) => { + const filters = getFilters(); + + if (!getIsReady() || !filters.length || hideFilters || !getFiltersAreShown()) { + return null; + } + + return ; +}); + diff --git a/src/renderer/components/item-object-list/header-filters.tsx b/src/renderer/components/item-object-list/header-filters.tsx new file mode 100644 index 0000000000..2868b3c15c --- /dev/null +++ b/src/renderer/components/item-object-list/header-filters.tsx @@ -0,0 +1,17 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { observer } from "mobx-react"; +import React from "react"; +import type { HeaderPlaceholders } from "./list-layout"; + +export interface ItemListLayoutHeaderFiltersProps { + headerPlaceholders: HeaderPlaceholders +} + +export const ItemListLayoutHeaderFilters = observer(({ headerPlaceholders }: ItemListLayoutHeaderFiltersProps) => ( + <> + {headerPlaceholders.filters} + +)); diff --git a/src/renderer/components/item-object-list/header-info.tsx b/src/renderer/components/item-object-list/header-info.tsx new file mode 100644 index 0000000000..400d20a6bf --- /dev/null +++ b/src/renderer/components/item-object-list/header-info.tsx @@ -0,0 +1,54 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import React from "react"; +import { observer } from "mobx-react"; +import type { ItemObject, ItemStore } from "../../../common/item.store"; +import type { Filter } from "./page-filters.store"; +import type { HeaderPlaceholders } from "./list-layout"; + +interface ItemListLayoutHeaderInfoProps { + headerPlaceholders: HeaderPlaceholders; + getItems: () => I[]; + store: ItemStore; + getFilters: () => Filter[] + toggleFilters: () => void +} + +export const ItemListLayoutHeaderInfo = observer(({ + headerPlaceholders, + getItems, + getFilters, + store, + toggleFilters, +}: ItemListLayoutHeaderInfoProps) => { + const renderInfo = () => { + const allItemsCount = store.getTotalCount(); + const itemsCount = getItems().length; + + if (getFilters().length > 0) { + return ( + <> + Filtered: {itemsCount} / {allItemsCount} + + ); + } + + return allItemsCount === 1 + ? `${allItemsCount} item` + : `${allItemsCount} items`; + }; + + const info = headerPlaceholders.info ?? renderInfo(); + + if (!info) { + return null; + } + + return ( +
+ {info} +
+ ); +}); diff --git a/src/renderer/components/item-object-list/header-search.tsx b/src/renderer/components/item-object-list/header-search.tsx new file mode 100644 index 0000000000..4e140ed348 --- /dev/null +++ b/src/renderer/components/item-object-list/header-search.tsx @@ -0,0 +1,27 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { observer } from "mobx-react"; +import type { ItemObject } from "../../../common/item.store"; +import { SearchInputUrl } from "../input"; +import React from "react"; +import type { HeaderPlaceholders, SearchFilter } from "./list-layout"; + +interface ItemListLayoutHeaderSearchProps { + searchFilters: SearchFilter[]; + headerPlaceholders: HeaderPlaceholders; +} + +export const ItemListLayoutHeaderSearch = observer(({ + searchFilters, + headerPlaceholders = {}, +}: ItemListLayoutHeaderSearchProps) => { + const { searchProps } = headerPlaceholders; + + if (searchFilters.length === 0 || !searchProps) { + return null; + } + + return ; +}); diff --git a/src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-title/item-list-layout-header-title.tsx b/src/renderer/components/item-object-list/header-title.tsx similarity index 91% rename from src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-title/item-list-layout-header-title.tsx rename to src/renderer/components/item-object-list/header-title.tsx index aa87298ead..8afcd88e57 100644 --- a/src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-title/item-list-layout-header-title.tsx +++ b/src/renderer/components/item-object-list/header-title.tsx @@ -4,7 +4,7 @@ */ import { observer } from "mobx-react"; import React from "react"; -import type { HeaderPlaceholders } from "../../item-list-layout"; +import type { HeaderPlaceholders } from "./list-layout"; interface ItemListLayoutHeaderTitleProps { renderHeaderTitle: React.ReactNode | (() => React.ReactNode); diff --git a/src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header.tsx b/src/renderer/components/item-object-list/header.tsx similarity index 64% rename from src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header.tsx rename to src/renderer/components/item-object-list/header.tsx index 72b0d58b31..dd0d159720 100644 --- a/src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header.tsx +++ b/src/renderer/components/item-object-list/header.tsx @@ -3,20 +3,20 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -import "../item-list-layout.scss"; +import "./item-list-layout.scss"; import React, { ReactNode } from "react"; import { observer } from "mobx-react"; -import { cssNames, IClassName } from "../../../utils"; -import type { ItemObject, ItemStore } from "../../../../common/item.store"; -import type { Filter } from "../page-filters.store"; -import { ItemListLayoutHeaderTitle } from "./item-list-layout-header-title/item-list-layout-header-title"; -import { ItemListLayoutHeaderInfo } from "./item-list-layout-header-info/item-list-layout-header-info"; -import { ItemListLayoutHeaderFilters } from "./item-list-layout-header-filters/item-list-layout-header-filters"; -import { ItemListLayoutHeaderSearch } from "./item-list-layout-header-search/item-list-layout-header-search"; -import type { HeaderCustomizer, SearchFilter } from "../item-list-layout"; +import { cssNames, IClassName } from "../../utils"; +import type { ItemObject, ItemStore } from "../../../common/item.store"; +import type { Filter } from "./page-filters.store"; +import { ItemListLayoutHeaderTitle } from "./header-title"; +import { ItemListLayoutHeaderInfo } from "./header-info"; +import { ItemListLayoutHeaderFilters } from "./header-filters"; +import { ItemListLayoutHeaderSearch } from "./header-search"; +import type { HeaderCustomizer, SearchFilter } from "./list-layout"; -interface ItemListLayoutHeaderProps { +export interface ItemListLayoutHeaderProps { getItems: () => I[]; getFilters: () => Filter[]; toggleFilters: () => void; @@ -44,6 +44,10 @@ export class ItemListLayoutHeader extends React.Component< renderHeaderTitle, headerClassName, searchFilters, + getItems, + store, + getFilters, + toggleFilters, } = this.props; if (!showHeader) { @@ -69,10 +73,10 @@ export class ItemListLayoutHeader extends React.Component< diff --git a/src/renderer/components/item-object-list/index.tsx b/src/renderer/components/item-object-list/index.tsx index 6861509d03..bb05729496 100644 --- a/src/renderer/components/item-object-list/index.tsx +++ b/src/renderer/components/item-object-list/index.tsx @@ -3,4 +3,4 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ -export * from "./item-list-layout"; +export * from "./list-layout"; diff --git a/src/renderer/components/item-object-list/item-list-layout-filters/item-list-layout-filters.tsx b/src/renderer/components/item-object-list/item-list-layout-filters/item-list-layout-filters.tsx deleted file mode 100644 index bea811a105..0000000000 --- a/src/renderer/components/item-object-list/item-list-layout-filters/item-list-layout-filters.tsx +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ - -import "../item-list-layout.scss"; - -import React from "react"; -import { PageFiltersList } from "../page-filters-list"; -import { observer } from "mobx-react"; -import type { Filter } from "../page-filters.store"; - -interface ItemListLayoutFilterProps { - getIsReady: () => boolean - getFilters: () => Filter[] - getFiltersAreShown: () => boolean - hideFilters: boolean -} - -@observer -export class ItemListLayoutFilters extends React.Component { - render() { - const filters = this.props.getFilters(); - - if (!this.props.getIsReady() || !filters.length || this.props.hideFilters || !this.props.getFiltersAreShown()) { - return null; - } - - return ; - } -} - diff --git a/src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-filters/item-list-layout-header-filters.tsx b/src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-filters/item-list-layout-header-filters.tsx deleted file mode 100644 index b271e90890..0000000000 --- a/src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-filters/item-list-layout-header-filters.tsx +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ -import { observer } from "mobx-react"; -import React from "react"; -import type { HeaderPlaceholders } from "../../item-list-layout"; - -interface ItemListLayoutHeaderFiltersProps { - headerPlaceholders: HeaderPlaceholders -} - -export const ItemListLayoutHeaderFilters = observer( - ({ headerPlaceholders }: ItemListLayoutHeaderFiltersProps) => ( - <>{headerPlaceholders.filters} - ), -); diff --git a/src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-info/item-list-layout-header-info.tsx b/src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-info/item-list-layout-header-info.tsx deleted file mode 100644 index cb711eb913..0000000000 --- a/src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-info/item-list-layout-header-info.tsx +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ -import React from "react"; -import { observer } from "mobx-react"; -import type { ItemObject, ItemStore } from "../../../../../common/item.store"; -import type { Filter } from "../../page-filters.store"; -import type { HeaderPlaceholders } from "../../item-list-layout"; - -interface ItemListLayoutHeaderInfoProps { - headerPlaceholders: HeaderPlaceholders; - getItems: () => I[]; - store: ItemStore; - getFilters: () => Filter[] - toggleFilters: () => void -} - -export const ItemListLayoutHeaderInfo = observer( - (props: ItemListLayoutHeaderInfoProps) => { - const { headerPlaceholders, getItems, getFilters, store, toggleFilters } = - props; - - const renderInfo = () => { - const allItemsCount = store.getTotalCount(); - const itemsCount = getItems().length; - - if (getFilters().length > 0) { - return ( - <> - Filtered: {itemsCount} /{" "} - {allItemsCount} - - ); - } - - return allItemsCount === 1 - ? `${allItemsCount} item` - : `${allItemsCount} items`; - }; - - const info = - headerPlaceholders.info === undefined - ? renderInfo() - : headerPlaceholders.info; - - if (!info) { - return null; - } - - return
{info}
; - }, -); diff --git a/src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-search/item-list-layout-header-search.tsx b/src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-search/item-list-layout-header-search.tsx deleted file mode 100644 index 223f4b2acf..0000000000 --- a/src/renderer/components/item-object-list/item-list-layout-header/item-list-layout-header-search/item-list-layout-header-search.tsx +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ -import { observer } from "mobx-react"; -import type { ItemObject } from "../../../../../common/item.store"; -import { SearchInputUrl } from "../../../input"; -import React from "react"; -import type { HeaderPlaceholders, SearchFilter } from "../../item-list-layout"; - -interface ItemListLayoutHeaderSearchProps { - searchFilters: SearchFilter[]; - headerPlaceholders: HeaderPlaceholders; -} - -export const ItemListLayoutHeaderSearch = observer( - ({ - searchFilters, - headerPlaceholders, - }: ItemListLayoutHeaderSearchProps) => { - const searchProps = - headerPlaceholders.searchProps !== undefined - ? headerPlaceholders.searchProps - : {}; - - if (searchFilters.length === 0 || !searchProps) { - return null; - } - - return ; - }, -); diff --git a/src/renderer/components/item-object-list/item-list-layout.tsx b/src/renderer/components/item-object-list/list-layout.tsx similarity index 90% rename from src/renderer/components/item-object-list/item-list-layout.tsx rename to src/renderer/components/item-object-list/list-layout.tsx index b5846e98a9..39211d0a6b 100644 --- a/src/renderer/components/item-object-list/item-list-layout.tsx +++ b/src/renderer/components/item-object-list/list-layout.tsx @@ -32,11 +32,11 @@ import type { NamespaceStore } from "../+namespaces/namespace-store/namespace.st import namespaceStoreInjectable from "../+namespaces/namespace-store/namespace-store.injectable"; import { withInjectables } from "@ogre-tools/injectable-react"; import itemListLayoutStorageInjectable - from "./item-list-layout-storage/item-list-layout-storage.injectable"; -import { ItemListLayoutContent } from "./item-list-layout-content/item-list-layout-content"; -import { ItemListLayoutHeader } from "./item-list-layout-header/item-list-layout-header"; + from "./storage.injectable"; +import { ItemListLayoutContent } from "./content"; +import { ItemListLayoutHeader } from "./header"; import groupBy from "lodash/groupBy"; -import { ItemListLayoutFilters } from "./item-list-layout-filters/item-list-layout-filters"; +import { ItemListLayoutFilters } from "./filters"; import { observer } from "mobx-react"; export type SearchFilter = (item: I) => string | number | (string | number)[]; @@ -286,38 +286,28 @@ class NonInjectedItemListLayout extends React.Component - {this.props.renderFooter && this.props.renderFooter(this)} + {this.props.renderFooter?.(this)} )); } } -export function ItemListLayout( - props: ItemListLayoutProps, -) { - const InjectedItemListLayout = withInjectables< - Dependencies, - ItemListLayoutProps - >( - NonInjectedItemListLayout, - - { - getProps: (di, props) => ({ - namespaceStore: di.inject(namespaceStoreInjectable), - itemListLayoutStorage: di.inject(itemListLayoutStorageInjectable), - ...props, - }), - }, - ); +const InjectedItemListLayout = withInjectables>(NonInjectedItemListLayout, { + getProps: (di, props) => ({ + namespaceStore: di.inject(namespaceStoreInjectable), + itemListLayoutStorage: di.inject(itemListLayoutStorageInjectable), + ...props, + }), +}); +export function ItemListLayout(props: ItemListLayoutProps) { return ; } -const applyFilters = ( - filters: ItemsFilter[], - items: I[], -): I[] => { - if (!filters || !filters.length) return items; +function applyFilters(filters: ItemsFilter[], items: I[]): I[] { + if (!filters || !filters.length) { + return items; + } return filters.reduce((items, filter) => filter(items), items); -}; +} diff --git a/src/renderer/components/item-object-list/item-list-layout-storage/item-list-layout-storage.injectable.ts b/src/renderer/components/item-object-list/storage.injectable.ts similarity index 85% rename from src/renderer/components/item-object-list/item-list-layout-storage/item-list-layout-storage.injectable.ts rename to src/renderer/components/item-object-list/storage.injectable.ts index 9033e5fdfe..a105d35472 100644 --- a/src/renderer/components/item-object-list/item-list-layout-storage/item-list-layout-storage.injectable.ts +++ b/src/renderer/components/item-object-list/storage.injectable.ts @@ -3,7 +3,7 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable"; -import createStorageInjectable from "../../../utils/create-storage/create-storage.injectable"; +import createStorageInjectable from "../../utils/create-storage/create-storage.injectable"; const itemListLayoutStorageInjectable = getInjectable({ instantiate: (di) => { diff --git a/src/renderer/components/kube-object-list-layout/kube-object-list-layout.tsx b/src/renderer/components/kube-object-list-layout/kube-object-list-layout.tsx index a3bf749fc3..f84a755098 100644 --- a/src/renderer/components/kube-object-list-layout/kube-object-list-layout.tsx +++ b/src/renderer/components/kube-object-list-layout/kube-object-list-layout.tsx @@ -10,7 +10,7 @@ import { computed, makeObservable, observable, reaction } from "mobx"; import { disposeOnUnmount, observer } from "mobx-react"; import { cssNames, Disposer } from "../../utils"; import type { KubeObject } from "../../../common/k8s-api/kube-object"; -import { ItemListLayout, ItemListLayoutProps } from "../item-object-list/item-list-layout"; +import { ItemListLayout, ItemListLayoutProps } from "../item-object-list/list-layout"; import type { KubeObjectStore } from "../../../common/k8s-api/kube-object.store"; import { KubeObjectMenu } from "../kube-object-menu"; import { NamespaceSelectFilter } from "../+namespaces/namespace-select-filter";