@@ -20,6 +20,7 @@ import IssuesCard from './IssuesCard'
2020import SecurityVulnerabilityCard from './SecurityVulnerabilityCard'
2121import AppStatusCard from './AppStatusCard'
2222import { getLastExecutionByArtifactId } from '../../../../services/service'
23+ import LoadingCard from './LoadingCard'
2324
2425const AppDetailsDownloadCard = importComponentFromFELibrary ( 'AppDetailsDownloadCard' )
2526
@@ -87,7 +88,8 @@ export const SourceInfo = ({
8788 }
8889 } , [ appDetails ?. ciArtifactId , appDetails ?. appId ] )
8990
90- const onClickShowCommitInfo = ( ) : void => {
91+ const onClickShowCommitInfo = ( e ) : void => {
92+ e . stopPropagation ( )
9193 showCommitInfo ( true )
9294 }
9395
@@ -99,6 +101,15 @@ export const SourceInfo = ({
99101 showHibernateModal ( isHibernated ? 'resume' : 'hibernate' )
100102 }
101103
104+ const shimmerLoaderBlocks = ( ) => {
105+ const loadingCards = [ ]
106+ for ( let i = 0 ; i < 4 ; i ++ ) {
107+ loadingCards . push ( < LoadingCard key = { i } /> )
108+ }
109+
110+ return < div className = "flex left mb-16" > { loadingCards } </ div >
111+ }
112+
102113 const conditionalScalePodsButton = ( children ) => {
103114 return (
104115 < Tippy
@@ -114,7 +125,7 @@ export const SourceInfo = ({
114125
115126 const renderDevtronAppsEnvironmentSelector = ( environment ) => {
116127 return (
117- < div className = "flex left w-100 mb-16 " >
128+ < div className = "flex left w-100" >
118129 < EnvSelector
119130 environments = { environments }
120131 disabled = { loadingDetails || loadingResourceTree || ( params . envId && ! showCommitInfo ) }
@@ -214,66 +225,69 @@ export const SourceInfo = ({
214225 }
215226
216227 return (
217- < div className = "flex left w-100 column source-info-container" >
228+ < div className = "flex left w-100 column source-info-container dc__gap-16 " >
218229 { renderDevtronAppsEnvironmentSelector ( environment ) }
219- { ! isdeploymentAppDeleting && environment && (
220- < div className = "flex left w-100" >
221- { ! isVirtualEnvironment && (
222- < AppStatusCard
223- appDetails = { appDetails }
224- status = { status }
225- cardLoading = { cardLoading }
226- setDetailed = { setDetailed }
227- message = { message }
228- />
229- ) }
230- { isVirtualEnvironment && renderGeneratedManifestDownloadCard ( ) }
231- { ! loadingResourceTree && (
232- < IssuesCard
233- cardLoading = { cardLoading }
234- toggleIssuesModal = { toggleIssuesModal }
235- setErrorsList = { setErrorsList }
236- setDetailed = { setDetailed }
237- />
238- ) }
239- < DeploymentStatusCard
240- deploymentStatusDetailsBreakdownData = { deploymentStatusDetailsBreakdownData }
241- cardLoading = { cardLoading }
242- hideDetails = { appDetails ?. deploymentAppType === DeploymentAppTypes . HELM }
243- isVirtualEnvironment = { isVirtualEnvironment }
244- refetchDeploymentStatus = { refetchDeploymentStatus }
245- />
246- { appDetails ?. dataSource !== 'EXTERNAL' && (
247- < DeployedCommitCard
248- cardLoading = { cardLoading }
249- showCommitInfoDrawer = { onClickShowCommitInfo }
250- envId = { envId }
251- ciArtifactId = { ciArtifactId }
252- />
253- ) }
254- { ! appDetails ?. deploymentAppDeleteRequest && showVulnerabilitiesCard && (
255- < SecurityVulnerabilityCard
256- cardLoading = { cardLoading }
257- severityCount = { severityCount }
258- showVulnerabilitiesModal = { showVulnerabilitiesModal }
259- />
260- ) }
261- < div className = "flex right ml-auto" >
262- { appDetails ?. appStoreChartId && (
263- < >
264- < span className = "mr-8 fs-12 cn-7" > Chart:</ span >
265- < Link
266- className = "cb-5 fw-6"
267- to = { `${ URLS . CHARTS } /discover/chart/${ appDetails . appStoreChartId } ` }
268- >
269- { appDetails . appStoreChartName } /{ appDetails . appStoreAppName } (
270- { appDetails . appStoreAppVersion } )
271- </ Link >
272- </ >
273- ) }
274- </ div >
275- </ div >
276- ) }
230+ { loadingDetails
231+ ? shimmerLoaderBlocks ( )
232+ : ! isdeploymentAppDeleting &&
233+ environment && (
234+ < div className = "flex left w-100" >
235+ { ! isVirtualEnvironment && (
236+ < AppStatusCard
237+ appDetails = { appDetails }
238+ status = { status }
239+ cardLoading = { cardLoading }
240+ setDetailed = { setDetailed }
241+ message = { message }
242+ />
243+ ) }
244+ { isVirtualEnvironment && renderGeneratedManifestDownloadCard ( ) }
245+ { ! loadingResourceTree && (
246+ < IssuesCard
247+ cardLoading = { cardLoading }
248+ toggleIssuesModal = { toggleIssuesModal }
249+ setErrorsList = { setErrorsList }
250+ setDetailed = { setDetailed }
251+ />
252+ ) }
253+ < DeploymentStatusCard
254+ deploymentStatusDetailsBreakdownData = { deploymentStatusDetailsBreakdownData }
255+ cardLoading = { cardLoading }
256+ hideDetails = { appDetails ?. deploymentAppType === DeploymentAppTypes . HELM }
257+ isVirtualEnvironment = { isVirtualEnvironment }
258+ refetchDeploymentStatus = { refetchDeploymentStatus }
259+ />
260+ { appDetails ?. dataSource !== 'EXTERNAL' && (
261+ < DeployedCommitCard
262+ cardLoading = { cardLoading }
263+ showCommitInfoDrawer = { onClickShowCommitInfo }
264+ envId = { envId }
265+ ciArtifactId = { ciArtifactId }
266+ />
267+ ) }
268+ { ! appDetails ?. deploymentAppDeleteRequest && showVulnerabilitiesCard && (
269+ < SecurityVulnerabilityCard
270+ cardLoading = { cardLoading }
271+ severityCount = { severityCount }
272+ showVulnerabilitiesModal = { showVulnerabilitiesModal }
273+ />
274+ ) }
275+ < div className = "flex right ml-auto" >
276+ { appDetails ?. appStoreChartId && (
277+ < >
278+ < span className = "mr-8 fs-12 cn-7" > Chart:</ span >
279+ < Link
280+ className = "cb-5 fw-6"
281+ to = { `${ URLS . CHARTS } /discover/chart/${ appDetails . appStoreChartId } ` }
282+ >
283+ { appDetails . appStoreChartName } /{ appDetails . appStoreAppName } (
284+ { appDetails . appStoreAppVersion } )
285+ </ Link >
286+ </ >
287+ ) }
288+ </ div >
289+ </ div >
290+ ) }
277291 </ div >
278292 )
279293}
0 commit comments