@@ -14,6 +14,7 @@ import '@ui5/webcomponents-icons/dist/sys-cancel-2';
1414import { resourcesInterval } from '../../lib/shared/constants' ;
1515import { ResourceStatusCell } from '../Shared/ResourceStatusCell' ;
1616import { YamlViewButton } from '../Yaml/YamlViewButton.tsx' ;
17+ import { useMemo } from 'react' ;
1718
1819interface CellData < T > {
1920 cell : {
@@ -46,56 +47,59 @@ export function ManagedResources() {
4647 refreshInterval : resourcesInterval , // Resources are quite expensive to fetch, so we refresh every 30 seconds
4748 } ) ;
4849
49- const columns : AnalyticalTableColumnDefinition [ ] = [
50- {
51- Header : t ( 'ManagedResources.tableHeaderKind' ) ,
52- accessor : 'kind' ,
53- } ,
54- {
55- Header : t ( 'ManagedResources.tableHeaderName' ) ,
56- accessor : 'name' ,
57- } ,
58- {
59- Header : t ( 'ManagedResources.tableHeaderCreated' ) ,
60- accessor : 'created' ,
61- } ,
62- {
63- Header : t ( 'ManagedResources.tableHeaderSynced' ) ,
64- accessor : 'synced' ,
65- hAlign : 'Center' ,
66- width : 85 ,
67- Cell : ( cellData : CellData < ResourceRow [ 'synced' ] > ) =>
68- cellData . cell . row . original ?. synced != null ? (
69- < ResourceStatusCell
70- value = { cellData . cell . row . original ?. synced }
71- transitionTime = { cellData . cell . row . original ?. syncedTransitionTime }
72- />
73- ) : null ,
74- } ,
75- {
76- Header : t ( 'ManagedResources.tableHeaderReady' ) ,
77- accessor : 'ready' ,
78- hAlign : 'Center' ,
79- width : 85 ,
80- Cell : ( cellData : CellData < ResourceRow [ 'ready' ] > ) =>
81- cellData . cell . row . original ?. ready != null ? (
82- < ResourceStatusCell
83- value = { cellData . cell . row . original ?. ready }
84- transitionTime = { cellData . cell . row . original ?. readyTransitionTime }
85- />
86- ) : null ,
87- } ,
88- {
89- Header : t ( 'yaml.YAML' ) ,
90- hAlign : 'Center' ,
91- width : 85 ,
92- accessor : 'yaml' ,
93- Cell : ( cellData : CellData < ResourceRow > ) =>
94- ! ! cellData . cell . row . original ?. item ? (
95- < YamlViewButton resourceObject = { cellData . cell . row . original ?. item } />
96- ) : undefined ,
97- } ,
98- ] ;
50+ const columns : AnalyticalTableColumnDefinition [ ] = useMemo (
51+ ( ) => [
52+ {
53+ Header : t ( 'ManagedResources.tableHeaderKind' ) ,
54+ accessor : 'kind' ,
55+ } ,
56+ {
57+ Header : t ( 'ManagedResources.tableHeaderName' ) ,
58+ accessor : 'name' ,
59+ } ,
60+ {
61+ Header : t ( 'ManagedResources.tableHeaderCreated' ) ,
62+ accessor : 'created' ,
63+ } ,
64+ {
65+ Header : t ( 'ManagedResources.tableHeaderSynced' ) ,
66+ accessor : 'synced' ,
67+ hAlign : 'Center' ,
68+ width : 85 ,
69+ Cell : ( cellData : CellData < ResourceRow [ 'synced' ] > ) =>
70+ cellData . cell . row . original ?. synced != null ? (
71+ < ResourceStatusCell
72+ value = { cellData . cell . row . original ?. synced }
73+ transitionTime = { cellData . cell . row . original ?. syncedTransitionTime }
74+ />
75+ ) : null ,
76+ } ,
77+ {
78+ Header : t ( 'ManagedResources.tableHeaderReady' ) ,
79+ accessor : 'ready' ,
80+ hAlign : 'Center' ,
81+ width : 85 ,
82+ Cell : ( cellData : CellData < ResourceRow [ 'ready' ] > ) =>
83+ cellData . cell . row . original ?. ready != null ? (
84+ < ResourceStatusCell
85+ value = { cellData . cell . row . original ?. ready }
86+ transitionTime = { cellData . cell . row . original ?. readyTransitionTime }
87+ />
88+ ) : null ,
89+ } ,
90+ {
91+ Header : t ( 'yaml.YAML' ) ,
92+ hAlign : 'Center' ,
93+ width : 85 ,
94+ accessor : 'yaml' ,
95+ Cell : ( cellData : CellData < ResourceRow > ) =>
96+ ! ! cellData . cell . row . original ?. item ? (
97+ < YamlViewButton resourceObject = { cellData . cell . row . original ?. item } />
98+ ) : undefined ,
99+ } ,
100+ ] ,
101+ [ ] ,
102+ ) ;
99103
100104 const rows : ResourceRow [ ] =
101105 managedResources
0 commit comments