@@ -134,45 +134,48 @@ export default class DeploymentMetrics extends Component<DeploymentMetricsProps,
134134 }
135135
136136 callGetAppOtherEnv ( prevEnvId : string | undefined ) {
137- getAppOtherEnvironmentMin ( this . props . match . params . appId )
138- . then ( ( envResponse ) => {
139- const filteredEnvMap = this . props . filteredEnvIds
140- ?. split ( ',' )
141- . reduce ( ( agg , curr ) => agg . set ( + curr , true ) , new Map ( ) )
142- let allEnv =
143- envResponse . result
144- ?. filter ( ( env ) => env . prod && ( ! filteredEnvMap || filteredEnvMap . get ( env . environmentId ) ) )
145- . map ( ( env ) => {
146- return {
147- label : env . environmentName ,
148- value : env . environmentId ,
149- deploymentAppDeleteRequest : env . deploymentAppDeleteRequest ,
150- }
151- } ) || [ ]
152- this . setState ( {
153- environments : allEnv ,
154- filteredEnvironment : allEnv . filter ( ( _env ) => ! _env . deploymentAppDeleteRequest ) ,
155- view : ( ! allEnv . length || ( prevEnvId && prevEnvId !== this . props . match . params . envId ) || this . props . match . params . envId ) !
156- ? ViewType . FORM
157- : ViewType . LOADING ,
158- } )
159- if ( allEnv . length ) {
160- if ( prevEnvId && prevEnvId !== this . props . match . params . envId ) {
161- const isEnvExist = allEnv . find ( ( e ) => Number ( e . value ) === Number ( prevEnvId ) )
162- let url = generatePath ( this . props . match . path , {
163- appId : this . props . match . params . appId ,
164- envId : isEnvExist ? prevEnvId : allEnv [ 0 ] . value ,
165- } )
166- this . props . history . push ( url )
167- } else if ( this . props . match . params . envId ) {
168- this . callGetDeploymentMetricsAPI ( this . props . match . params . appId , this . props . match . params . envId )
169- }
170- }
171- } )
172- . catch ( ( error ) => {
173- showError ( error )
174- this . setState ( { code : error . code , view : ViewType . ERROR } )
175- } )
137+ getAppOtherEnvironmentMin ( this . props . match . params . appId )
138+ . then ( ( envResponse ) => {
139+ const filteredEnvMap = this . props . filteredEnvIds
140+ ?. split ( ',' )
141+ . reduce ( ( agg , curr ) => agg . set ( + curr , true ) , new Map ( ) )
142+ let allEnv =
143+ envResponse . result
144+ ?. filter (
145+ ( env ) =>
146+ env . prod &&
147+ ! env . deploymentAppDeleteRequest &&
148+ ( ! filteredEnvMap || filteredEnvMap . get ( env . environmentId ) ) ,
149+ )
150+ . map ( ( env ) => {
151+ return {
152+ label : env . environmentName ,
153+ value : env . environmentId ,
154+ deploymentAppDeleteRequest : env . deploymentAppDeleteRequest ,
155+ }
156+ } ) || [ ]
157+ let isEnvExist = prevEnvId && allEnv . find ( ( e ) => Number ( e . value ) === Number ( prevEnvId ) )
158+ const redirectToNewUrl =
159+ allEnv . length && prevEnvId && ( prevEnvId !== this . props . match . params . envId || ! isEnvExist )
160+ this . setState ( {
161+ environments : allEnv ,
162+ filteredEnvironment : allEnv ,
163+ view : this . props . match . params . envId || redirectToNewUrl ? ViewType . LOADING : ViewType . FORM ,
164+ } )
165+ if ( redirectToNewUrl ) {
166+ let url = generatePath ( this . props . match . path , {
167+ appId : this . props . match . params . appId ,
168+ envId : isEnvExist ? prevEnvId : allEnv [ 0 ] . value ,
169+ } )
170+ this . props . history . push ( url )
171+ } else if ( this . props . match . params . envId ) {
172+ this . callGetDeploymentMetricsAPI ( this . props . match . params . appId , this . props . match . params . envId )
173+ }
174+ } )
175+ . catch ( ( error ) => {
176+ showError ( error )
177+ this . setState ( { code : error . code , view : ViewType . ERROR } )
178+ } )
176179 }
177180
178181 closeDeploymentTableModal ( ) : void {
0 commit comments