@@ -54,61 +54,60 @@ export const ComponentsSelectionContainer: React.FC<ComponentsSelectionProps> =
5454 ) ;
5555
5656 useEffect ( ( ) => {
57- if (
58- initialized . current ||
59- ! availableManagedComponentsListData ?. items ||
60- availableManagedComponentsListData . items . length === 0
61- ) {
57+ const items = availableManagedComponentsListData ?. items ?? [ ] ;
58+
59+ if ( ! items . length ) {
60+ if ( ! initialized . current ) return ;
61+ setTemplateDefaultsError ( null ) ;
6262 return ;
6363 }
6464
65- const newComponentsList = availableManagedComponentsListData . items
66- . map ( ( item ) => {
67- const versions = sortVersions ( item . status . versions ) ;
68- const template = defaultComponents . find ( ( dc ) => dc . name === item . metadata . name ) ;
69- const templateVersion = template ?. version ;
70- const selectedVersion = template
71- ? templateVersion && versions . includes ( templateVersion )
72- ? templateVersion
73- : ''
74- : ( versions [ 0 ] ?? '' ) ;
75- return {
76- name : item . metadata . name ,
77- versions,
78- selectedVersion,
79- isSelected : ! ! template ,
80- documentationUrl : '' ,
81- } ;
82- } )
83- . filter ( ( component ) => ! removeComponents . find ( ( item ) => item === component . name ) ) ;
84-
85- setComponentsList ( newComponentsList ) ;
86- initialized . current = true ;
87- } , [ availableManagedComponentsListData , setComponentsList , defaultComponents ] ) ;
65+ if ( ! initialized . current ) {
66+ const newComponentsList = items
67+ . map ( ( item ) => {
68+ const versions = sortVersions ( item . status . versions ) ;
69+ const template = defaultComponents . find ( ( dc ) => dc . name === item . metadata . name ) ;
70+ const templateVersion = template ?. version ;
71+ const selectedVersion = template
72+ ? templateVersion && versions . includes ( templateVersion )
73+ ? templateVersion
74+ : ''
75+ : ( versions [ 0 ] ?? '' ) ;
76+ return {
77+ name : item . metadata . name ,
78+ versions,
79+ selectedVersion,
80+ isSelected : ! ! template ,
81+ documentationUrl : '' ,
82+ } ;
83+ } )
84+ . filter ( ( component ) => ! removeComponents . find ( ( item ) => item === component . name ) ) ;
85+
86+ setComponentsList ( newComponentsList ) ;
87+ initialized . current = true ;
88+ }
8889
89- useEffect ( ( ) => {
90- const items = availableManagedComponentsListData ?. items ?? [ ] ;
91- if ( items . length === 0 || ! defaultComponents . length ) {
90+ if ( ! defaultComponents . length ) {
9291 setTemplateDefaultsError ( null ) ;
9392 return ;
9493 }
9594
96- const errs : string [ ] = [ ] ;
95+ const errors : string [ ] = [ ] ;
9796 defaultComponents . forEach ( ( dc : TemplateDefaultComponent ) => {
9897 if ( ! dc ?. name ) return ;
9998 const item = items . find ( ( it ) => it . metadata . name === dc . name ) ;
10099 if ( ! item ) {
101- errs . push ( `Component "${ dc . name } " from template is not available.` ) ;
100+ errors . push ( `Component "${ dc . name } " from template is not available.` ) ;
102101 return ;
103102 }
104103 const versions : string [ ] = Array . isArray ( item . status ?. versions ) ? item . status . versions : [ ] ;
105104 if ( dc . version && ! versions . includes ( dc . version ) ) {
106- errs . push ( `Component "${ dc . name } " version "${ dc . version } " from template is not available.` ) ;
105+ errors . push ( `Component "${ dc . name } " version "${ dc . version } " from template is not available.` ) ;
107106 }
108107 } ) ;
109108
110- setTemplateDefaultsError ( errs . length ? errs . join ( '\n' ) : null ) ;
111- } , [ availableManagedComponentsListData , defaultComponents ] ) ;
109+ setTemplateDefaultsError ( errors . length ? errors . join ( '\n' ) : null ) ;
110+ } , [ availableManagedComponentsListData , defaultComponents , setComponentsList ] ) ;
112111
113112 useEffect ( ( ) => {
114113 if ( ! initialized . current ) return ;
0 commit comments