@@ -12,15 +12,14 @@ import { useTranslation } from 'react-i18next';
1212import { Link } from 'react-router-dom-v5-compat' ;
1313import {
1414 useResolvedExtensions ,
15- DashboardsInventoryItemGroup as DynamicDashboardsInventoryItemGroup ,
16- isDashboardsInventoryItemGroup as isDynamicDashboardsInventoryItemGroup ,
15+ DashboardsInventoryItemGroup ,
16+ isDashboardsInventoryItemGroup ,
1717} from '@console/dynamic-plugin-sdk' ;
18+ import type { ResolvedExtension } from '@console/dynamic-plugin-sdk/dist/core/lib/types' ;
1819import { ResourceInventoryItemProps } from '@console/dynamic-plugin-sdk/src/api/internal-types' ;
1920import { pluralize } from '@console/internal/components/utils/details-page' ;
2021import { resourcePathFromModel } from '@console/internal/components/utils/resource-link' ;
2122import { K8sResourceKind , K8sKind , K8sResourceCommon } from '@console/internal/module/k8s' ;
22- import { DashboardsInventoryItemGroup , isDashboardsInventoryItemGroup } from '@console/plugin-sdk' ;
23- import { useExtensions } from '@console/plugin-sdk/src/api/useExtensions' ;
2423import { RedExclamationCircleIcon , YellowExclamationTriangleIcon } from '../../status/icons' ;
2524import InventoryItemNew , {
2625 InventoryItemStatus ,
@@ -41,7 +40,9 @@ const defaultStatusGroupIcons = {
4140 ) ,
4241} ;
4342
44- const getStatusGroupIcons = ( groups : DashboardsInventoryItemGroup [ 'properties' ] [ ] ) => {
43+ const getStatusGroupIcons = (
44+ groups : ResolvedExtension < DashboardsInventoryItemGroup > [ 'properties' ] [ ] ,
45+ ) => {
4546 const groupStatusIcons = { ...defaultStatusGroupIcons } ;
4647 groups . forEach ( ( group ) => {
4748 if ( ! groupStatusIcons [ group . id ] ) {
@@ -52,7 +53,7 @@ const getStatusGroupIcons = (groups: DashboardsInventoryItemGroup['properties'][
5253} ;
5354
5455const getTop3Groups = (
55- groups : DashboardsInventoryItemGroup [ 'properties' ] [ ] ,
56+ groups : ResolvedExtension < DashboardsInventoryItemGroup > [ 'properties' ] [ ] ,
5657 groupIDs : string [ ] ,
5758) => {
5859 const groupStatuses : ( InventoryStatusGroup | string ) [ ] = [
@@ -139,19 +140,14 @@ export const InventoryItem: React.FC<InventoryItemProps> = React.memo(
139140) ;
140141
141142export const Status : React . FC < StatusProps > = ( { groupID, count } ) => {
142- const groupExtensions = useExtensions < DashboardsInventoryItemGroup > (
143+ const [ groupExtensions ] = useResolvedExtensions < DashboardsInventoryItemGroup > (
143144 isDashboardsInventoryItemGroup ,
144145 ) ;
145- const [ dynamicGroupExtensions ] = useResolvedExtensions < DynamicDashboardsInventoryItemGroup > (
146- isDynamicDashboardsInventoryItemGroup ,
147- ) ;
148146
149147 const statusGroupIcons = React . useMemo ( ( ) => {
150- const mergedExtensions = [ ...groupExtensions , ...dynamicGroupExtensions ] . map (
151- ( e ) => e . properties ,
152- ) ;
153- return getStatusGroupIcons ( mergedExtensions ) ;
154- } , [ dynamicGroupExtensions , groupExtensions ] ) ;
148+ const extensions = groupExtensions . map ( ( e ) => e . properties ) ;
149+ return getStatusGroupIcons ( extensions ) ;
150+ } , [ groupExtensions ] ) ;
155151
156152 if ( groupID === InventoryStatusGroup . NOT_MAPPED || ! count ) {
157153 return null ;
@@ -171,20 +167,14 @@ const StatusLink: React.FC<StatusLinkProps> = ({
171167 filterType,
172168 basePath,
173169} ) => {
174- const groupExtensions = useExtensions < DashboardsInventoryItemGroup > (
170+ const [ groupExtensions ] = useResolvedExtensions < DashboardsInventoryItemGroup > (
175171 isDashboardsInventoryItemGroup ,
176172 ) ;
177173
178- const [ dynamicGroupExtensions ] = useResolvedExtensions < DynamicDashboardsInventoryItemGroup > (
179- isDynamicDashboardsInventoryItemGroup ,
180- ) ;
181-
182174 const statusGroupIcons = React . useMemo ( ( ) => {
183- const mergedExtensions = [ ...groupExtensions , ...dynamicGroupExtensions ] . map (
184- ( e ) => e . properties ,
185- ) ;
186- return getStatusGroupIcons ( mergedExtensions ) ;
187- } , [ dynamicGroupExtensions , groupExtensions ] ) ;
175+ const extensions = groupExtensions . map ( ( e ) => e . properties ) ;
176+ return getStatusGroupIcons ( extensions ) ;
177+ } , [ groupExtensions ] ) ;
188178
189179 if ( groupID === InventoryStatusGroup . NOT_MAPPED || ! count ) {
190180 return null ;
@@ -243,12 +233,9 @@ export const ResourceInventoryItem: React.FC<ResourceInventoryItemProps> = ({
243233
244234 if ( TitleComponent ) Title = TitleComponent ;
245235
246- const groupExtensions = useExtensions < DashboardsInventoryItemGroup > (
236+ const [ groupExtensions ] = useResolvedExtensions < DashboardsInventoryItemGroup > (
247237 isDashboardsInventoryItemGroup ,
248238 ) ;
249- const [ dynamicGroupExtensions ] = useResolvedExtensions < DynamicDashboardsInventoryItemGroup > (
250- isDynamicDashboardsInventoryItemGroup ,
251- ) ;
252239
253240 const groups = React . useMemo ( ( ) => ( mapper ? mapper ( resources , additionalResources ) : { } ) , [
254241 mapper ,
@@ -257,14 +244,12 @@ export const ResourceInventoryItem: React.FC<ResourceInventoryItemProps> = ({
257244 ] ) ;
258245
259246 const top3Groups = React . useMemo ( ( ) => {
260- const mergedExtensions = [ ...groupExtensions , ...dynamicGroupExtensions ] . map (
261- ( e ) => e . properties ,
262- ) ;
247+ const extensions = groupExtensions . map ( ( e ) => e . properties ) ;
263248 return getTop3Groups (
264- mergedExtensions ,
249+ extensions ,
265250 Object . keys ( groups ) . filter ( ( key ) => groups [ key ] . count > 0 ) ,
266251 ) ;
267- } , [ dynamicGroupExtensions , groupExtensions , groups ] ) ;
252+ } , [ groupExtensions , groups ] ) ;
268253
269254 // The count can depend on additionalResources (like mixing of VM and VMI for kubevirt-plugin)
270255 const totalCount = React . useMemo (
0 commit comments