@@ -4,13 +4,14 @@ import { generatePath, Route, Switch, useLocation, useRouteMatch } from 'react-r
4
4
import { ReactComponent as ICError } from '@Icons/ic-error.svg'
5
5
import { getAppEnvDeploymentConfigList } from '@Shared/Components/DeploymentConfigDiff'
6
6
import { useAsync } from '@Common/Helper'
7
- import { EnvResourceType , getAppEnvDeploymentConfig } from '@Shared/Services'
7
+ import { EnvResourceType , getAppEnvDeploymentConfig , getCompareSecretsData } from '@Shared/Services'
8
8
import { groupArrayByObjectKey } from '@Shared/Helpers'
9
9
import ErrorScreenManager from '@Common/ErrorScreenManager'
10
10
import { Progressing } from '@Common/Progressing'
11
11
import { useUrlFilters } from '@Common/Hooks'
12
12
import { GenericEmptyState , InfoColourBar } from '@Common/index'
13
13
14
+ import { useMainContext } from '@Shared/Providers'
14
15
import { DeploymentHistoryConfigDiffCompare } from './DeploymentHistoryConfigDiffCompare'
15
16
import { DeploymentHistoryConfigDiffProps , DeploymentHistoryConfigDiffQueryParams } from './types'
16
17
import {
@@ -35,6 +36,7 @@ export const DeploymentHistoryConfigDiff = ({
35
36
// HOOKS
36
37
const { path, params } = useRouteMatch ( )
37
38
const { pathname, search } = useLocation ( )
39
+ const { isSuperAdmin } = useMainContext ( )
38
40
39
41
// CONSTANTS
40
42
const pipelineDeployments = useMemo ( ( ) => getPipelineDeployments ( triggerHistory ) , [ triggerHistory ] )
@@ -54,32 +56,49 @@ export const DeploymentHistoryConfigDiff = ({
54
56
55
57
// ASYNC CALLS
56
58
// Load comparison deployment data
57
- const [ compareDeploymentConfigLoader , compareDeploymentConfig , , reloadCompareDeploymentConfig ] = useAsync (
58
- ( ) =>
59
- Promise . allSettled ( [
60
- getAppEnvDeploymentConfig ( {
61
- params : {
62
- appName,
63
- envName,
64
- configArea : 'DeploymentHistory' ,
65
- pipelineId,
66
- wfrId : currentWfrId ,
67
- } ,
68
- } ) ,
59
+ const [ compareDeploymentConfigLoader , compareDeploymentConfig , , reloadCompareDeploymentConfig ] =
60
+ useAsync ( async ( ) => {
61
+ const payloads = [
62
+ {
63
+ appName,
64
+ envName,
65
+ configArea : 'DeploymentHistory' ,
66
+ pipelineId,
67
+ wfrId : currentWfrId ,
68
+ } as const ,
69
69
isPreviousDeploymentConfigAvailable
70
- ? getAppEnvDeploymentConfig ( {
71
- params : {
72
- appName,
73
- envName,
74
- configArea : 'DeploymentHistory' ,
75
- pipelineId,
76
- wfrId : compareWfrId ,
77
- } ,
78
- } )
70
+ ? ( {
71
+ appName,
72
+ envName,
73
+ configArea : 'DeploymentHistory' ,
74
+ pipelineId,
75
+ wfrId : compareWfrId ,
76
+ } as const )
79
77
: null ,
80
- ] ) ,
81
- [ currentWfrId , compareWfrId ] ,
82
- )
78
+ ] as const
79
+
80
+ const [ secretsData , ...configDatas ] = await Promise . allSettled ( [
81
+ ! isSuperAdmin ? getCompareSecretsData ( [ ...payloads ] ) : null ,
82
+ ...payloads . map ( ( payload ) => payload && getAppEnvDeploymentConfig ( { params : payload } ) ) ,
83
+ ] )
84
+
85
+ if ( secretsData . status !== 'fulfilled' || ! secretsData . value ) {
86
+ return configDatas
87
+ }
88
+
89
+ secretsData . value . forEach ( ( data , index ) => {
90
+ if (
91
+ configDatas [ index ] . status !== 'fulfilled' ||
92
+ ! configDatas [ index ] . value ||
93
+ configDatas [ index ] . value . result . isAppAdmin
94
+ ) {
95
+ return
96
+ }
97
+ configDatas [ index ] . value . result . secretsData = data . secretsData
98
+ } )
99
+
100
+ return configDatas
101
+ } , [ currentWfrId , compareWfrId ] )
83
102
84
103
// METHODS
85
104
const getNavItemHref = ( resourceType : EnvResourceType , resourceName : string ) =>
0 commit comments