11import { FlexibleColumnLayout } from '@ui5/webcomponents-react' ;
2- import React , { Suspense } from 'react' ;
2+ import React , { Suspense , useDeferredValue } from 'react' ;
33import { Route , useParams } from 'react-router' ;
44import { useRecoilState } from 'recoil' ;
55import { ErrorBoundary } from 'shared/components/ErrorBoundary/ErrorBoundary' ;
@@ -52,78 +52,72 @@ const ColumnWrapper = ({
5252 rawResourceTypeName : 'Kyma' ,
5353 } ) ;
5454
55- const startColumnComponent = ( ) => {
56- return (
57- < div className = "column-content" >
58- { layoutState . layout === 'OneColumn' && defaultColumn === 'details' ? (
59- < ExtensibilityDetails
60- layoutCloseCreateUrl = { url }
61- resourceName = { layoutState ?. midColumn ?. resourceName || resourceName }
62- resourceType = { layoutState ?. midColumn ?. resourceType || resourceType }
63- namespaceId = {
64- layoutState ?. midColumn ?. namespaceId ||
65- layoutState ?. midColumn ?. namespaceId === ''
66- ? layoutState ?. midColumn ?. namespaceId
67- : namespace
68- }
69- isModule = { true }
70- />
71- ) : (
72- < KymaModulesList namespaced = { namespaced } />
73- ) }
74- </ div >
75- ) ;
76- } ;
55+ const startColumnComponent = useDeferredValue (
56+ < div className = "column-content" >
57+ { layoutState . layout === 'OneColumn' && defaultColumn === 'details' ? (
58+ < ExtensibilityDetails
59+ layoutCloseCreateUrl = { url }
60+ resourceName = { layoutState ?. midColumn ?. resourceName || resourceName }
61+ resourceType = { layoutState ?. midColumn ?. resourceType || resourceType }
62+ namespaceId = {
63+ layoutState ?. midColumn ?. namespaceId ||
64+ layoutState ?. midColumn ?. namespaceId === ''
65+ ? layoutState ?. midColumn ?. namespaceId
66+ : namespace
67+ }
68+ isModule = { true }
69+ />
70+ ) : (
71+ < KymaModulesList namespaced = { namespaced } />
72+ ) }
73+ </ div > ,
74+ ) ;
7775
78- const midColumnComponent = ( ) => {
79- return (
80- < >
81- { /* details */ }
82- { ! layoutState ?. showCreate &&
83- layoutState ?. midColumn &&
84- ( defaultColumn !== 'details' ||
85- layoutState . layout !== 'OneColumn' ) && (
86- < div className = "column-content" >
87- < ExtensibilityDetails
88- layoutCloseCreateUrl = { url }
89- resourceName = {
90- layoutState ?. midColumn ?. resourceName || resourceName
91- }
92- resourceType = {
93- layoutState ?. midColumn ?. resourceType || resourceType
94- }
95- namespaceId = {
96- layoutState ?. midColumn ?. namespaceId ||
97- layoutState ?. midColumn ?. namespaceId === ''
98- ? layoutState ?. midColumn ?. namespaceId
99- : namespace
100- }
101- isModule = { true }
102- />
103- </ div >
104- ) }
105- { /* create */ }
106- { ! layoutState ?. midColumn &&
107- ( defaultColumn !== 'details' ||
108- layoutState . layout !== 'OneColumn' ) && (
109- < div className = "column-content" >
110- < ResourceCreate
111- title = { t ( 'kyma-modules.add-module' ) }
112- confirmText = { t ( 'common.buttons.add' ) }
113- layoutCloseCreateUrl = { url }
114- renderForm = { renderProps => {
115- return (
116- < ErrorBoundary >
117- < KymaModulesAddModule { ...renderProps } />
118- </ ErrorBoundary >
119- ) ;
120- } }
121- />
122- </ div >
123- ) }
124- </ >
125- ) ;
126- } ;
76+ const midColumnComponent = (
77+ < >
78+ { /* details */ }
79+ { ! layoutState ?. showCreate &&
80+ layoutState ?. midColumn &&
81+ ( defaultColumn !== 'details' || layoutState . layout !== 'OneColumn' ) && (
82+ < div className = "column-content" >
83+ < ExtensibilityDetails
84+ layoutCloseCreateUrl = { url }
85+ resourceName = {
86+ layoutState ?. midColumn ?. resourceName || resourceName
87+ }
88+ resourceType = {
89+ layoutState ?. midColumn ?. resourceType || resourceType
90+ }
91+ namespaceId = {
92+ layoutState ?. midColumn ?. namespaceId ||
93+ layoutState ?. midColumn ?. namespaceId === ''
94+ ? layoutState ?. midColumn ?. namespaceId
95+ : namespace
96+ }
97+ isModule = { true }
98+ />
99+ </ div >
100+ ) }
101+ { /* create */ }
102+ { ! layoutState ?. midColumn &&
103+ ( defaultColumn !== 'details' || layoutState . layout !== 'OneColumn' ) && (
104+ < div className = "column-content" >
105+ < ResourceCreate
106+ title = { t ( 'kyma-modules.add-module' ) }
107+ confirmText = { t ( 'common.buttons.add' ) }
108+ layoutCloseCreateUrl = { url }
109+ renderForm = { renderProps => {
110+ return (
111+ < ErrorBoundary >
112+ < KymaModulesAddModule { ...renderProps } />
113+ </ ErrorBoundary >
114+ ) ;
115+ } }
116+ />
117+ </ div >
118+ ) }
119+ </ >
120+ ) ;
127121
128122 return (
129123 < ModuleTemplatesContextProvider >
@@ -141,12 +135,14 @@ const ColumnWrapper = ({
141135 handleResourceDelete = { handleResourceDelete }
142136 showDeleteDialog = { showDeleteDialog }
143137 >
144- < FlexibleColumnLayout
145- style = { { height : '100%' } }
146- layout = { layoutState ?. layout }
147- startColumn = { startColumnComponent ( ) }
148- midColumn = { midColumnComponent ( ) }
149- />
138+ < Suspense fallback = { < Spinner /> } >
139+ < FlexibleColumnLayout
140+ style = { { height : '100%' } }
141+ layout = { layoutState ?. layout }
142+ startColumn = { startColumnComponent }
143+ midColumn = { midColumnComponent }
144+ />
145+ </ Suspense >
150146 </ CommunityModuleContextProvider >
151147 </ KymaModuleContextProvider >
152148 </ ModuleTemplatesContextProvider >
0 commit comments