@@ -23,6 +23,7 @@ import {
23
23
ToastManager ,
24
24
ToastVariantType ,
25
25
useAsync ,
26
+ useMainContext ,
26
27
useTheme ,
27
28
} from '@devtron-labs/devtron-fe-common-lib'
28
29
import { useParams , Link , NavLink } from 'react-router-dom'
@@ -63,6 +64,7 @@ export const AppMetrics: React.FC<{
63
64
addExtraSpace : boolean
64
65
} > = ( { appName, podMap, k8sVersion, addExtraSpace, environment } ) => {
65
66
const { appTheme } = useTheme ( )
67
+ const { setTempAppWindowConfig } = useMainContext ( )
66
68
const { appMetrics, infraMetrics, environmentName } = environment
67
69
const [ calendar , setDateRange ] = useState < { startDate : Moment ; endDate : Moment } > ( {
68
70
startDate : moment ( ) . subtract ( 5 , 'minute' ) ,
@@ -85,7 +87,6 @@ export const AppMetrics: React.FC<{
85
87
} )
86
88
const [ focusedInput , setFocusedInput ] = useState ( CalendarFocusInput . StartDate )
87
89
const [ tab , setTab ] = useState < AppMetricsTabType > ( AppMetricsTab . Aggregate )
88
- const [ chartName , setChartName ] = useState < ChartTypes > ( null )
89
90
const { appId, envId } = useParams < AppDetailsPathParams > ( )
90
91
const [ calendarValue , setCalendarValue ] = useState ( '' )
91
92
const [ statusCode , setStatusCode ] = useState < StatusTypes > ( StatusType . Throughput )
@@ -302,6 +303,31 @@ export const AppMetrics: React.FC<{
302
303
} )
303
304
}
304
305
306
+ const openTempAppWindow = ( chartName : ChartTypes ) => ( ) => {
307
+ setTempAppWindowConfig ( {
308
+ open : true ,
309
+ title : `${ appName } /application metrics` ,
310
+ component : (
311
+ < GraphModal
312
+ appId = { appId }
313
+ envId = { envId }
314
+ appName = { appName }
315
+ infraMetrics = { environment . infraMetrics }
316
+ appMetrics = { environment . appMetrics }
317
+ dataSourceName = { dataSourceName }
318
+ chartName = { chartName }
319
+ newPodHash = { newPodHash }
320
+ calendar = { calendar }
321
+ calendarInputs = { calendarInputs }
322
+ tab = { tab }
323
+ k8sVersion = { k8sVersion }
324
+ selectedLatency = { selectedLatency }
325
+ getIframeSrcWrapper = { getIframeSrcWrapper }
326
+ />
327
+ ) ,
328
+ } )
329
+ }
330
+
305
331
useEffect ( ( ) => {
306
332
const inputCalendarValue : string = getCalendarValue ( calendarInputs . startDate , calendarInputs . endDate )
307
333
if ( inputCalendarValue !== calendarValue ) {
@@ -366,25 +392,6 @@ export const AppMetrics: React.FC<{
366
392
/>
367
393
< span className = "dc__tertiary-tab" > Per Pod</ span >
368
394
</ label >
369
- { chartName ? (
370
- < GraphModal
371
- appId = { appId }
372
- envId = { envId }
373
- appName = { appName }
374
- infraMetrics = { environment . infraMetrics }
375
- appMetrics = { environment . appMetrics }
376
- dataSourceName = { dataSourceName }
377
- chartName = { chartName }
378
- newPodHash = { newPodHash }
379
- calendar = { calendar }
380
- calendarInputs = { calendarInputs }
381
- tab = { tab }
382
- k8sVersion = { k8sVersion }
383
- selectedLatency = { selectedLatency }
384
- close = { ( ) => setChartName ( null ) }
385
- getIframeSrcWrapper = { getIframeSrcWrapper }
386
- />
387
- ) : null }
388
395
</ div >
389
396
< DateRangePicker
390
397
calendar = { calendar }
@@ -410,9 +417,7 @@ export const AppMetrics: React.FC<{
410
417
< div className = "flex" >
411
418
< Fullscreen
412
419
className = "icon-dim-16 cursor fcn-5"
413
- onClick = { ( e ) => {
414
- setChartName ( ChartType . Cpu )
415
- } }
420
+ onClick = { openTempAppWindow ( ChartType . Cpu ) }
416
421
/>
417
422
</ div >
418
423
</ Tippy >
@@ -426,9 +431,7 @@ export const AppMetrics: React.FC<{
426
431
< div className = "flex" >
427
432
< Fullscreen
428
433
className = "icon-dim-16 cursor fcn-5"
429
- onClick = { ( e ) => {
430
- setChartName ( ChartType . Ram )
431
- } }
434
+ onClick = { openTempAppWindow ( ChartType . Ram ) }
432
435
/>
433
436
</ div >
434
437
</ Tippy >
@@ -450,9 +453,7 @@ export const AppMetrics: React.FC<{
450
453
< div className = "flex" >
451
454
< Fullscreen
452
455
className = "icon-dim-16 cursor fcn-5"
453
- onClick = { ( e ) => {
454
- setChartName ( ChartType . Status )
455
- } }
456
+ onClick = { openTempAppWindow ( ChartType . Status ) }
456
457
/>
457
458
</ div >
458
459
</ Tippy >
@@ -478,9 +479,7 @@ export const AppMetrics: React.FC<{
478
479
< div className = "flex" >
479
480
< Fullscreen
480
481
className = "icon-dim-16 cursor fcn-5"
481
- onClick = { ( e ) => {
482
- setChartName ( ChartType . Latency )
483
- } }
482
+ onClick = { openTempAppWindow ( ChartType . Latency ) }
484
483
/>
485
484
</ div >
486
485
</ Tippy >
0 commit comments