@@ -2,7 +2,7 @@ import React from 'react';
22import { useTranslation } from 'react-i18next' ;
33import { useSetRecoilState } from 'recoil' ;
44import jsyaml from 'js-yaml' ;
5- import { Button , Tag , Text } from '@ui5/webcomponents-react' ;
5+ import { Button } from '@ui5/webcomponents-react' ;
66import pluralize from 'pluralize' ;
77import {
88 findModuleStatus ,
@@ -11,11 +11,8 @@ import {
1111 KymaResourceStatusModuleType ,
1212 KymaResourceType ,
1313 ModuleTemplateListType ,
14- ModuleTemplateType ,
1514} from '../support' ;
1615import { UnmanagedModuleInfo } from './UnmanagedModuleInfo' ;
17- import { ModuleStatus , resolveType } from './ModuleStatus' ;
18- import { useModulesReleaseQuery } from '../kymaModulesQueries' ;
1916import { useUrl } from 'hooks/useUrl' ;
2017import { extractApiGroupVersion } from 'resources/Roles/helpers' ;
2118import {
@@ -24,15 +21,9 @@ import {
2421 ShowCreate ,
2522} from 'state/columnLayoutAtom' ;
2623import { isFormOpenState } from 'state/formOpenAtom' ;
27- import { EMPTY_TEXT_PLACEHOLDER } from 'shared/constants' ;
2824import { useGet , useGetList } from 'shared/hooks/BackendAPI/useGet' ;
2925import { GenericList } from 'shared/components/GenericList/GenericList' ;
30- import { StatusBadge } from 'shared/components/StatusBadge/StatusBadge' ;
31- import { ExternalLink } from 'shared/components/ExternalLink/ExternalLink' ;
32-
33- type ModuleReleaseMetasType = {
34- items : { spec : { moduleName : string ; beta : boolean } } [ ] ;
35- } ;
26+ import { ModulesListRows } from './ModulesListRows' ;
3627
3728type CustomResourceDefinitionsType = {
3829 items : {
@@ -67,9 +58,6 @@ export const ModulesList = ({
6758 handleResourceDelete,
6859} : ModulesListProps ) => {
6960 const { t } = useTranslation ( ) ;
70- const { data : moduleReleaseMetas } = useModulesReleaseQuery ( {
71- skip : ! resourceName ,
72- } ) ;
7361 const { data : kymaExt } = useGetList (
7462 ( ext : { metadata : { labels : Record < string , string > } } ) =>
7563 ext . metadata . labels [ 'app.kubernetes.io/part-of' ] === 'Kyma' ,
@@ -104,12 +92,6 @@ export const ModulesList = ({
10492 setIsFormOpen ( state => ( { ...state , formOpen : true } ) ) ;
10593 } ;
10694
107- const findModuleReleaseMeta = ( moduleName : string ) => {
108- return ( moduleReleaseMetas as ModuleReleaseMetasType | null ) ?. items . find (
109- item => item . spec . moduleName === moduleName ,
110- ) ;
111- } ;
112-
11395 const findExtension = ( resourceKind : string ) => {
11496 return ( kymaExt as { data : { general : string } } [ ] | null ) ?. find ( ext => {
11597 const { resource : extensionResource } =
@@ -118,16 +100,6 @@ export const ModulesList = ({
118100 } ) ;
119101 } ;
120102
121- const checkBeta = (
122- module : ModuleTemplateType | undefined ,
123- currentModuleReleaseMeta ?: { spec : { moduleName : string ; beta : boolean } } ,
124- ) => {
125- return (
126- module ?. metadata . labels [ 'operator.kyma-project.io/beta' ] === 'true' ||
127- currentModuleReleaseMeta ?. spec ?. beta === true
128- ) ;
129- } ;
130-
131103 const findCrd = ( resourceKind : string ) => {
132104 return ( crds as CustomResourceDefinitionsType | null ) ?. items ?. find (
133105 crd => crd . spec ?. names ?. kind === resourceKind ,
@@ -173,102 +145,6 @@ export const ModulesList = ({
173145 ) ;
174146 } ;
175147
176- const rowRenderer = ( resource : {
177- name : string ;
178- channel : string ;
179- version : string ;
180- resource : { kind : string } ;
181- } ) => {
182- const moduleStatus = findModuleStatus ( kymaResource , resource . name ) ;
183- const showDetailsLink = hasDetailsLink ( resource ) ;
184- const moduleIndex = kymaResource ?. spec ?. modules ?. findIndex (
185- kymaResourceModule => {
186- return kymaResourceModule ?. name === resource ?. name ;
187- } ,
188- ) ;
189-
190- const currentModuleTemplate = findModuleTemplate (
191- moduleTemplates ,
192- resource ?. name ,
193- resource ?. channel || kymaResource ?. spec ?. channel ,
194- resource ?. version ,
195- ) ;
196-
197- const moduleDocs =
198- currentModuleTemplate ?. spec ?. info ?. documentation ||
199- currentModuleTemplate ?. metadata ?. annotations [
200- 'operator.kyma-project.io/doc-url'
201- ] ;
202-
203- const currentModuleReleaseMeta = findModuleReleaseMeta ( resource . name ) ;
204-
205- const isChannelOverriden =
206- kymaResource ?. spec ?. modules ?. [ moduleIndex ] ?. channel !== undefined ;
207-
208- return [
209- // Name
210- < >
211- { showDetailsLink ? (
212- < Text style = { { fontWeight : 'bold' , color : 'var(--sapLinkColor)' } } >
213- { resource . name }
214- </ Text >
215- ) : (
216- resource . name
217- ) }
218- { checkBeta ( currentModuleTemplate , currentModuleReleaseMeta ) ? (
219- < Tag
220- className = "sap-margin-begin-tiny"
221- hideStateIcon
222- colorScheme = "3"
223- design = "Set2"
224- >
225- { t ( 'kyma-modules.beta' ) }
226- </ Tag >
227- ) : null }
228- </ > ,
229- // Namespace
230- moduleStatus ?. resource ?. metadata ?. namespace || EMPTY_TEXT_PLACEHOLDER ,
231- // Channel
232- < >
233- { moduleStatus ?. channel
234- ? moduleStatus ?. channel
235- : kymaResource ?. spec ?. modules ?. [ moduleIndex ] ?. channel ||
236- kymaResource ?. spec ?. channel }
237- { isChannelOverriden ? (
238- < Tag
239- hideStateIcon
240- design = "Set2"
241- colorScheme = "5"
242- className = "sap-margin-begin-tiny"
243- >
244- { t ( 'kyma-modules.channel-overridden' ) }
245- </ Tag >
246- ) : (
247- ''
248- ) }
249- </ > ,
250- // Version
251- moduleStatus ?. version || EMPTY_TEXT_PLACEHOLDER ,
252- // Module State
253- < ModuleStatus key = "module-state" resource = { resource } /> ,
254- // Installation State
255- < StatusBadge
256- key = "installation-state"
257- resourceKind = "kymas"
258- type = { resolveType ( moduleStatus ?. state ?? '' ) }
259- tooltipContent = { moduleStatus ?. message }
260- >
261- { moduleStatus ?. state || 'Unknown' }
262- </ StatusBadge > ,
263- // Documentation
264- moduleDocs ? (
265- < ExternalLink url = { moduleDocs } > { t ( 'common.headers.link' ) } </ ExternalLink >
266- ) : (
267- EMPTY_TEXT_PLACEHOLDER
268- ) ,
269- ] ;
270- } ;
271-
272148 const customColumnLayout = ( resource : { name : string } ) => {
273149 return {
274150 resourceName : resource ?. name ,
@@ -329,11 +205,11 @@ export const ModulesList = ({
329205 ) ;
330206 const moduleCr = connectedModule ?. spec ?. data ;
331207 moduleStatus . resource = {
332- kind : moduleCr ? .kind ,
333- apiVersion : moduleCr ? .apiVersion ,
208+ kind : moduleCr . kind ,
209+ apiVersion : moduleCr . apiVersion ,
334210 metadata : {
335- name : moduleCr ? .metadata ? .name ,
336- namespace : moduleCr ? .metadata ? .namespace ,
211+ name : moduleCr . metadata . name ,
212+ namespace : moduleCr . metadata . namespace ,
337213 } ,
338214 } ;
339215 }
@@ -435,7 +311,15 @@ export const ModulesList = ({
435311 getEntries ( resource ?. status ?. modules , resource ?. spec ?. modules ) as any
436312 }
437313 headerRenderer = { headerRenderer }
438- rowRenderer = { rowRenderer }
314+ rowRenderer = { resource =>
315+ ModulesListRows ( {
316+ resourceName,
317+ resource,
318+ kymaResource,
319+ moduleTemplates,
320+ hasDetailsLink,
321+ } )
322+ }
439323 noHideFields = { [ 'Name' , '' , 'Namespace' ] }
440324 displayArrow
441325 title = { 'Modules' }
0 commit comments