From 2c4861a128796882e821b9f4f12efd1ecce10c65 Mon Sep 17 00:00:00 2001 From: Alex Andreev Date: Fri, 1 Apr 2022 13:36:43 +0300 Subject: [PATCH] Merge catalog EntityName conflicts Signed-off-by: Alex Andreev --- .../+catalog/internal-category-columns.tsx | 74 ------------------- .../name-category-column.injectable.tsx | 29 +++++++- 2 files changed, 25 insertions(+), 78 deletions(-) diff --git a/src/renderer/components/+catalog/internal-category-columns.tsx b/src/renderer/components/+catalog/internal-category-columns.tsx index 29a5b3fa3f..0aba81db0b 100644 --- a/src/renderer/components/+catalog/internal-category-columns.tsx +++ b/src/renderer/components/+catalog/internal-category-columns.tsx @@ -9,14 +9,6 @@ import React from "react"; import type { RegisteredAdditionalCategoryColumn } from "./custom-category-columns"; import { getLabelBadges } from "./helpers"; import { KubeObject } from "../../../common/k8s-api/kube-object"; -import { observer } from "mobx-react"; -import type { HotbarStore } from "../../../common/hotbar-store"; -import { prevDefault } from "../../utils"; -import { Avatar } from "../avatar"; -import { Icon } from "../icon"; -import { withInjectables } from "@ogre-tools/injectable-react"; -import type { CatalogEntity } from "../../api/catalog-entity"; -import hotbarStoreInjectable from "../../../common/hotbar-store.injectable"; export const browseAllColumns: RegisteredAdditionalCategoryColumn[] = [ { @@ -32,20 +24,6 @@ export const browseAllColumns: RegisteredAdditionalCategoryColumn[] = [ }, ]; -export const nameCategoryColumn: RegisteredAdditionalCategoryColumn = { - id: "name", - priority: 0, - renderCell: (entity) => , - titleProps: { - title: "Name", - className: styles.entityName, - id: "name", - sortBy: "name", - }, - searchFilter: entity => entity.getName(), - sortCallback: entity => `name=${entity.getName()}`, -}; - export const defaultCategoryColumns: RegisteredAdditionalCategoryColumn[] = [ { id: "source", @@ -89,55 +67,3 @@ export const defaultCategoryColumns: RegisteredAdditionalCategoryColumn[] = [ sortCallback: entity => entity.status.phase, }, ]; - -interface Dependencies { - hotbarStore: HotbarStore; -} - -interface EntityNameProps { - entity: CatalogEntity; -} - -const NonInjectedEntityName = observer(({ entity, hotbarStore }: Dependencies & EntityNameProps) => { - const isItemInHotbar = hotbarStore.isAddedToActive(entity); - const onClick = prevDefault( - isItemInHotbar - ? () => hotbarStore.removeFromHotbar(entity.getId()) - : () => hotbarStore.addToHotbar(entity), - ); - - return ( - <> - - {entity.spec.icon?.material && } - - {entity.getName()} - - - ); -}); - -const EntityName = withInjectables( - NonInjectedEntityName, - - { - getProps: (di, props) => ({ - hotbarStore: di.inject(hotbarStoreInjectable), - ...props, - }), - }, -); diff --git a/src/renderer/components/+catalog/name-category-column.injectable.tsx b/src/renderer/components/+catalog/name-category-column.injectable.tsx index 27fd4072a0..7d898c5f0d 100644 --- a/src/renderer/components/+catalog/name-category-column.injectable.tsx +++ b/src/renderer/components/+catalog/name-category-column.injectable.tsx @@ -12,8 +12,18 @@ import React from "react"; import type { RegisteredAdditionalCategoryColumn } from "./custom-category-columns"; import hotbarStoreInjectable from "../../../common/hotbar-store.injectable"; import type { HotbarStore } from "../../../common/hotbar-store"; +import { observer } from "mobx-react"; +import { withInjectables } from "@ogre-tools/injectable-react"; -const renderEntityName = (hotbarStore: HotbarStore) => (entity: CatalogEntity) => { +interface Dependencies { + hotbarStore: HotbarStore; +} + +interface EntityNameProps { + entity: CatalogEntity; +} + +const NonInjectedEntityName = observer(({ entity, hotbarStore }: Dependencies & EntityNameProps) => { const isItemInHotbar = hotbarStore.isAddedToActive(entity); const onClick = prevDefault( isItemInHotbar @@ -44,15 +54,26 @@ const renderEntityName = (hotbarStore: HotbarStore) => (entity: CatalogEntity) = /> ); -}; +}); + +const EntityName = withInjectables( + NonInjectedEntityName, + + { + getProps: (di, props) => ({ + hotbarStore: di.inject(hotbarStoreInjectable), + ...props, + }), + }, +); const nameCategoryColumnInjectable = getInjectable({ id: "name-category-column", - instantiate: (di): RegisteredAdditionalCategoryColumn => ({ + instantiate: (): RegisteredAdditionalCategoryColumn => ({ id: "name", priority: 0, - renderCell: renderEntityName(di.inject(hotbarStoreInjectable)), + renderCell: (entity) => , titleProps: { title: "Name", className: styles.entityName,