@@ -16,7 +16,7 @@ import {
1616} from '@ui5/webcomponents-react' ;
1717
1818import { HintButton } from 'shared/components/DescriptionHint/DescriptionHint' ;
19- import React , { useEffect , useState } from 'react' ;
19+ import React , { useEffect , useMemo , useState } from 'react' ;
2020
2121import { GenericList } from 'shared/components/GenericList/GenericList' ;
2222import {
@@ -50,7 +50,7 @@ import {
5050 useModulesReleaseQuery ,
5151 useModuleTemplatesQuery ,
5252} from './kymaModulesQueries' ;
53- import { findModuleStatus } from './support' ;
53+ import { findModuleStatus , findModuleTemplate } from './support' ;
5454import {
5555 checkIfAssociatedResourceLeft ,
5656 deleteAssociatedResources ,
@@ -140,28 +140,6 @@ export default function KymaModulesList({
140140 } ;
141141
142142 const ModulesList = resource => {
143- const findModuleTemplate = ( moduleName , channel , version ) => {
144- // This change was made due to changes in moduleTemplates and should be simplified once all moduleTemplates migrate
145- const moduleTemplateWithoutInfo = moduleTemplates ?. items ?. find (
146- moduleTemplate =>
147- moduleName ===
148- moduleTemplate . metadata . labels [
149- 'operator.kyma-project.io/module-name'
150- ] && moduleTemplate . spec . channel === channel ,
151- ) ;
152- const moduleWithInfo = moduleTemplates ?. items ?. find (
153- moduleTemplate =>
154- moduleName ===
155- moduleTemplate . metadata . labels [
156- 'operator.kyma-project.io/module-name'
157- ] &&
158- ! moduleTemplate . spec . channel &&
159- moduleTemplate . spec . version === version ,
160- ) ;
161-
162- return moduleWithInfo ?? moduleTemplateWithoutInfo ;
163- } ;
164-
165143 const findModuleReleaseMeta = moduleName => {
166144 return moduleReleaseMetas ?. items . find (
167145 item => item . spec . moduleName === moduleName ,
@@ -210,6 +188,7 @@ export default function KymaModulesList({
210188 const hasCrd = ! ! findCrd ( resource ?. resource ?. kind ) ;
211189
212190 let hasModuleTpl = ! ! findModuleTemplate (
191+ moduleTemplates ,
213192 resource . name ,
214193 resource . channel ,
215194 resource . version ,
@@ -230,6 +209,7 @@ export default function KymaModulesList({
230209 ) ;
231210
232211 const currentModuleTemplate = findModuleTemplate (
212+ moduleTemplates ,
233213 resource ?. name ,
234214 resource ?. channel || kymaResource ?. spec ?. channel ,
235215 resource ?. version ,
@@ -352,6 +332,7 @@ export default function KymaModulesList({
352332 // It can be refactored after implementing https://github.com/kyma-project/lifecycle-manager/issues/2232
353333 if ( ! moduleStatus . resource ) {
354334 const connectedModule = findModuleTemplate (
335+ moduleTemplates ,
355336 moduleName ,
356337 moduleStatus . channel ,
357338 moduleStatus . version ,
@@ -429,19 +410,24 @@ export default function KymaModulesList({
429410 const [ allowForceDelete , setAllowForceDelete ] = useState ( false ) ;
430411 const [ associatedResourceLeft , setAssociatedResourceLeft ] = useState ( false ) ;
431412
432- useEffect ( ( ) => {
433- const fetchCounts = async ( ) => {
434- const resources = getAssociatedResources (
413+ const associatedResources = useMemo (
414+ ( ) =>
415+ getAssociatedResources (
435416 chosenModuleIndex ,
436- findModuleTemplate ,
437417 selectedModules ,
438418 kymaResource ,
439- ) ;
419+ moduleTemplates ,
420+ ) ,
421+ // eslint-disable-next-line react-hooks/exhaustive-deps
422+ [ chosenModuleIndex , moduleTemplates ] ,
423+ ) ;
440424
441- const counts = await fetchResourceCounts ( resources , fetchFn ) ;
425+ useEffect ( ( ) => {
426+ const fetchCounts = async ( ) => {
427+ const counts = await fetchResourceCounts ( associatedResources , fetchFn ) ;
442428
443429 const urls = await generateAssociatedResourcesUrls (
444- resources ,
430+ associatedResources ,
445431 fetchFn ,
446432 clusterUrl ,
447433 getScope ,
@@ -451,9 +437,9 @@ export default function KymaModulesList({
451437
452438 const crUResources = getCRResource (
453439 chosenModuleIndex ,
454- findModuleTemplate ,
455440 selectedModules ,
456441 kymaResource ,
442+ moduleTemplates ,
457443 ) ;
458444
459445 const crUrl = await generateAssociatedResourcesUrls (
@@ -472,21 +458,18 @@ export default function KymaModulesList({
472458
473459 fetchCounts ( ) ;
474460 // eslint-disable-next-line react-hooks/exhaustive-deps
475- } , [ chosenModuleIndex ] ) ;
461+ } , [ associatedResources ] ) ;
476462
477463 useEffect ( ( ) => {
478464 const resourcesLeft = checkIfAssociatedResourceLeft (
479465 resourceCounts ,
480- chosenModuleIndex ,
481- findModuleTemplate ,
482- selectedModules ,
483- kymaResource ,
466+ associatedResources ,
484467 ) ;
485468
486469 setAssociatedResourceLeft ( resourcesLeft ) ;
487470
488471 // eslint-disable-next-line react-hooks/exhaustive-deps
489- } , [ resourceCounts ] ) ;
472+ } , [ resourceCounts , associatedResources ] ) ;
490473
491474 function getEntries ( statusModules = [ ] , specModules = [ ] ) {
492475 specModules . forEach ( specItem => {
@@ -525,12 +508,7 @@ export default function KymaModulesList({
525508 name : selectedModules [ chosenModuleIndex ] ?. name ,
526509 } ) }
527510 </ Text >
528- { getAssociatedResources (
529- chosenModuleIndex ,
530- findModuleTemplate ,
531- selectedModules ,
532- kymaResource ,
533- ) . length > 0 && (
511+ { associatedResources . length > 0 && (
534512 < >
535513 < MessageStrip
536514 design = "Information"
@@ -544,12 +522,7 @@ export default function KymaModulesList({
544522 mode = "None"
545523 separators = "All"
546524 >
547- { getAssociatedResources (
548- chosenModuleIndex ,
549- findModuleTemplate ,
550- selectedModules ,
551- kymaResource ,
552- ) . map ( assResource => {
525+ { associatedResources . map ( assResource => {
553526 const resourceCount =
554527 resourceCounts [
555528 `${ assResource . kind } -${ assResource . group } -${ assResource . version } `
0 commit comments