From 1443074632f059a8d3aee60d4383c34f00169151 Mon Sep 17 00:00:00 2001 From: Alex Andreev Date: Wed, 21 Jul 2021 11:35:34 +0300 Subject: [PATCH] Cleaning up Signed-off-by: Alex Andreev --- src/renderer/components/+catalog/catalog.tsx | 19 ++++++++++++------- src/renderer/components/menu/menu.tsx | 2 +- .../components/render-delay/render-delay.tsx | 4 +++- types/dom.d.ts | 2 +- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/renderer/components/+catalog/catalog.tsx b/src/renderer/components/+catalog/catalog.tsx index 207f3cb80b..d45e7a3acb 100644 --- a/src/renderer/components/+catalog/catalog.tsx +++ b/src/renderer/components/+catalog/catalog.tsx @@ -44,6 +44,7 @@ import { CatalogMenu } from "./catalog-menu"; import { HotbarIcon } from "../hotbar/hotbar-icon"; import { RenderDelay } from "../render-delay/render-delay"; import { CatalogTopbar } from "../cluster-manager/catalog-topbar"; +import type { TableSortCallback } from "../table"; export const previousActiveTab = createAppStorage("catalog-previous-active-tab", ""); @@ -194,8 +195,17 @@ export class Catalog extends React.Component { renderList() { const { activeCategory } = this.catalogEntityStore; + const tableId = activeCategory ? `catalog-items-${activeCategory.metadata.name.replace(" ", "")}` : "catalog-items"; + let sortingCallbacks: { [sortBy: string]: TableSortCallback } = { + [sortBy.name]: (item: CatalogEntityItem) => item.name, + [sortBy.source]: (item: CatalogEntityItem) => item.source, + [sortBy.status]: (item: CatalogEntityItem) => item.phase, + }; - const tableId = activeCategory ? `catalog-items-${activeCategory?.metadata.name.replace(" ", "")}` : "catalog-items"; + sortingCallbacks = activeCategory ? sortingCallbacks : { + ...sortingCallbacks, + [sortBy.kind]: (item: CatalogEntityItem) => item.kind, + }; if (this.activeTab === undefined) { return null; @@ -209,12 +219,7 @@ export class Catalog extends React.Component { isConfigurable={true} className="CatalogItemList" store={this.catalogEntityStore} - sortingCallbacks={{ - [sortBy.name]: (item: CatalogEntityItem) => item.name, - [sortBy.kind]: (item: CatalogEntityItem) => item.kind, - [sortBy.source]: (item: CatalogEntityItem) => item.source, - [sortBy.status]: (item: CatalogEntityItem) => item.phase, - }} + sortingCallbacks={sortingCallbacks} searchFilters={[ (entity: CatalogEntityItem) => entity.searchFields, ]} diff --git a/src/renderer/components/menu/menu.tsx b/src/renderer/components/menu/menu.tsx index 9fa05a1e3a..30780e7ac4 100644 --- a/src/renderer/components/menu/menu.tsx +++ b/src/renderer/components/menu/menu.tsx @@ -260,7 +260,7 @@ export class Menu extends React.Component { } onBlur() { - if (!this.isOpen) return; + if (!this.isOpen) return; // Prevents triggering document.activeElement for each instance if (document.activeElement?.tagName == "IFRAME") { this.close(); diff --git a/src/renderer/components/render-delay/render-delay.tsx b/src/renderer/components/render-delay/render-delay.tsx index 1127841477..b90cb9148a 100644 --- a/src/renderer/components/render-delay/render-delay.tsx +++ b/src/renderer/components/render-delay/render-delay.tsx @@ -39,7 +39,9 @@ export class RenderDelay extends React.Component { } componentDidMount() { - window.requestIdleCallback(this.showContents); + const guaranteedFireTime = 1000; + + window.requestIdleCallback(this.showContents, { timeout: guaranteedFireTime }); } componentWillUnmount() { diff --git a/types/dom.d.ts b/types/dom.d.ts index 7e8fde45cd..72a2488aca 100644 --- a/types/dom.d.ts +++ b/types/dom.d.ts @@ -26,7 +26,7 @@ declare global { } interface Window { - requestIdleCallback(callback: () => void); + requestIdleCallback(callback: () => void, options: { timeout: number }); cancelIdleCallback(callback: () => void); } }