@@ -45,17 +45,15 @@ const isFELibAvailable = importComponentFromFELibrary('isFELibAvailable', null,
45
45
46
46
// This is a list of namespaces and environments mapped to a cluster
47
47
const ClustersEnvironmentsList = ( {
48
- clusterId,
49
- clusterName,
50
- clusterType,
48
+ clusterDetails,
51
49
environments,
52
- isVirtualCluster,
53
- status,
54
50
filterConfig : { sortBy, searchKey, sortOrder } ,
55
51
showUnmappedEnvs,
56
52
setDeleteEnvConfig : setDeleteEnvId ,
57
53
setEditEnvConfig : setEditEnvId ,
58
54
} : ClusterEnvListProps ) => {
55
+ const { clusterId, clusterName, isVirtualCluster, status, isProd, category } = clusterDetails
56
+
59
57
const [ namespaceListLoading , namespaceListResult , namespaceListError , reloadNamespaces ] = useAsync (
60
58
( ) => namespaceListByClusterId ( `${ clusterId } ` ) ,
61
59
[ ] ,
@@ -87,17 +85,19 @@ const ClustersEnvironmentsList = ({
87
85
88
86
const namespaceEnvList : EnvNamespaceRowType [ ] = useMemo (
89
87
( ) => [
90
- ...environments . map ( ( { id : envId , environmentName, namespace, isProd, category, description } ) => ( {
91
- clusterId,
92
- envId,
93
- environmentName,
94
- namespace,
95
- envType : isProd ? 'Production' : 'Non Production' ,
96
- category : category ?. name ?? '' ,
97
- description,
98
- // false for virtual clusters and actual namespaces might not exist, for physical cluster showing not found if does not exist
99
- namespaceNotFound : isVirtualCluster || ! showUnmappedEnvs ? false : ! namespacesMap [ namespace ] ,
100
- } ) ) ,
88
+ ...environments . map (
89
+ ( { id : envId , environmentName, namespace, isProd : isProdEnv , category, description } ) => ( {
90
+ clusterId,
91
+ envId,
92
+ environmentName,
93
+ namespace,
94
+ envType : isProdEnv ? 'Production' : 'Non Production' ,
95
+ category : category ?. name ?? '' ,
96
+ description,
97
+ // false for virtual clusters and actual namespaces might not exist, for physical cluster showing not found if does not exist
98
+ namespaceNotFound : isVirtualCluster || ! showUnmappedEnvs ? false : ! namespacesMap [ namespace ] ,
99
+ } ) ,
100
+ ) ,
101
101
...( namespaceListResult ?. result ?? [ ] )
102
102
. filter ( ( namespace ) => ! mappedNamespacesMap [ namespace ] )
103
103
. map ( ( namespace ) => ( {
@@ -276,28 +276,23 @@ const ClustersEnvironmentsList = ({
276
276
< >
277
277
{ /* Cluster metadata */ }
278
278
< div
279
- className = "px-20 py-6 bg__secondary flex dc__gap-16 dc__content-start fs-12 lh-20 cn-7 dc__position-sticky"
279
+ className = "px-20 py-6 bg__secondary dc__grid dc__align-items-center cluster-metadata-header dc__gap-16 dc__content-start fs-12 lh-20 cn-7 dc__position-sticky"
280
280
style = { { top : '37px' } }
281
281
>
282
282
< ClusterIconWithStatus clusterStatus = { status } isVirtualCluster = { isVirtualCluster } />
283
- < span className = "fw-6" > { clusterName } </ span >
284
- < div className = "flex dc__gap-4 fw-4" >
285
- < span > { clusterType } </ span >
286
- < span > ·</ span >
287
- < span > { environments . length } Environments</ span >
288
- { showUnmappedEnvs && (
289
- < >
290
- < span > ·</ span >
291
- { isVirtualCluster ? (
292
- < span > { environments . filter ( ( { namespace } ) => ! ! namespace ) . length } Namespaces</ span >
293
- ) : (
294
- ! namespaceListError && (
295
- < span > { ( namespaceListResult ?. result ?? [ ] ) . length } Namespaces</ span >
296
- )
297
- ) }
298
- </ >
299
- ) }
300
- </ div >
283
+ < Tooltip
284
+ content = { `${ clusterName } (${ environments . length } Environments)` }
285
+ alwaysShowTippyOnHover
286
+ maxWidth = { 250 }
287
+ >
288
+ < div className = "flex left dc__gap-6" >
289
+ < span className = "fw-6 dc__white-space-nowrap" > { clusterName } </ span >
290
+ < span className = "dc__ellipsis-right" > ({ environments . length } Environments)</ span >
291
+ </ div >
292
+ </ Tooltip >
293
+ { showUnmappedEnvs ? < span > { ( namespaceListResult ?. result ?? [ ] ) . length } Namespaces</ span > : < span /> }
294
+ < span > { isProd ? 'Production' : 'Non Production' } </ span >
295
+ { category ?. label && < span > { category . label } </ span > }
301
296
</ div >
302
297
{ /* Env and Namespace List */ }
303
298
{ renderNamespaceEnvList ( ) }
@@ -427,14 +422,11 @@ const EnvironmentList = ({
427
422
</ div >
428
423
{ clusterList
429
424
. filter ( ( { clusterId } ) => ! filterClusterId || filterClusterId === String ( clusterId ) )
430
- . map ( ( { clusterId , clusterName , isProd , isVirtualCluster , status } ) => (
425
+ . map ( ( clusterDetails ) => (
431
426
< ClustersEnvironmentsList
432
- key = { `${ clusterName } -${ clusterId } ` }
433
- clusterId = { clusterId }
434
- clusterName = { clusterName }
435
- clusterType = { isProd ? 'Production' : 'Non Production' }
436
- environments = { clusterIdVsEnvMap [ clusterId ] ?? [ ] }
437
- isVirtualCluster = { isVirtualCluster }
427
+ key = { `${ clusterDetails . clusterName } -${ clusterDetails . clusterId } ` }
428
+ clusterDetails = { clusterDetails }
429
+ environments = { clusterIdVsEnvMap [ clusterDetails . clusterId ] ?? [ ] }
438
430
filterConfig = { {
439
431
sortBy,
440
432
sortOrder,
@@ -443,7 +435,6 @@ const EnvironmentList = ({
443
435
showUnmappedEnvs = { showUnmappedEnvs }
444
436
setDeleteEnvConfig = { setDeleteEnvConfig }
445
437
setEditEnvConfig = { setEditEnvConfig }
446
- status = { status }
447
438
/>
448
439
) ) }
449
440
{ deleteEnvConfig && (
0 commit comments