Skip to content

Commit ae36df1

Browse files
authored
Merge pull request #2823 from devtron-labs/feat/temp-app-window
feat: integrate temporary app window for external links and app metrics
2 parents 560161e + f385bea commit ae36df1

File tree

7 files changed

+225
-315
lines changed

7 files changed

+225
-315
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"private": true,
55
"homepage": "/dashboard",
66
"dependencies": {
7-
"@devtron-labs/devtron-fe-common-lib": "1.17.0-pre-14",
7+
"@devtron-labs/devtron-fe-common-lib": "1.17.0-pre-15",
88
"@esbuild-plugins/node-globals-polyfill": "0.2.3",
99
"@rjsf/core": "^5.13.3",
1010
"@rjsf/utils": "^5.13.3",

src/components/app/details/appDetails/AppMetrics.tsx

Lines changed: 31 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import {
2323
ToastManager,
2424
ToastVariantType,
2525
useAsync,
26+
useMainContext,
2627
useTheme,
2728
} from '@devtron-labs/devtron-fe-common-lib'
2829
import { useParams, Link, NavLink } from 'react-router-dom'
@@ -63,6 +64,7 @@ export const AppMetrics: React.FC<{
6364
addExtraSpace: boolean
6465
}> = ({ appName, podMap, k8sVersion, addExtraSpace, environment }) => {
6566
const { appTheme } = useTheme()
67+
const { setTempAppWindowConfig } = useMainContext()
6668
const { appMetrics, infraMetrics, environmentName } = environment
6769
const [calendar, setDateRange] = useState<{ startDate: Moment; endDate: Moment }>({
6870
startDate: moment().subtract(5, 'minute'),
@@ -85,7 +87,6 @@ export const AppMetrics: React.FC<{
8587
})
8688
const [focusedInput, setFocusedInput] = useState(CalendarFocusInput.StartDate)
8789
const [tab, setTab] = useState<AppMetricsTabType>(AppMetricsTab.Aggregate)
88-
const [chartName, setChartName] = useState<ChartTypes>(null)
8990
const { appId, envId } = useParams<AppDetailsPathParams>()
9091
const [calendarValue, setCalendarValue] = useState('')
9192
const [statusCode, setStatusCode] = useState<StatusTypes>(StatusType.Throughput)
@@ -302,6 +303,31 @@ export const AppMetrics: React.FC<{
302303
})
303304
}
304305

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+
305331
useEffect(() => {
306332
const inputCalendarValue: string = getCalendarValue(calendarInputs.startDate, calendarInputs.endDate)
307333
if (inputCalendarValue !== calendarValue) {
@@ -366,25 +392,6 @@ export const AppMetrics: React.FC<{
366392
/>
367393
<span className="dc__tertiary-tab">Per Pod</span>
368394
</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}
388395
</div>
389396
<DateRangePicker
390397
calendar={calendar}
@@ -410,9 +417,7 @@ export const AppMetrics: React.FC<{
410417
<div className="flex">
411418
<Fullscreen
412419
className="icon-dim-16 cursor fcn-5"
413-
onClick={(e) => {
414-
setChartName(ChartType.Cpu)
415-
}}
420+
onClick={openTempAppWindow(ChartType.Cpu)}
416421
/>
417422
</div>
418423
</Tippy>
@@ -426,9 +431,7 @@ export const AppMetrics: React.FC<{
426431
<div className="flex">
427432
<Fullscreen
428433
className="icon-dim-16 cursor fcn-5"
429-
onClick={(e) => {
430-
setChartName(ChartType.Ram)
431-
}}
434+
onClick={openTempAppWindow(ChartType.Ram)}
432435
/>
433436
</div>
434437
</Tippy>
@@ -450,9 +453,7 @@ export const AppMetrics: React.FC<{
450453
<div className="flex">
451454
<Fullscreen
452455
className="icon-dim-16 cursor fcn-5"
453-
onClick={(e) => {
454-
setChartName(ChartType.Status)
455-
}}
456+
onClick={openTempAppWindow(ChartType.Status)}
456457
/>
457458
</div>
458459
</Tippy>
@@ -478,9 +479,7 @@ export const AppMetrics: React.FC<{
478479
<div className="flex">
479480
<Fullscreen
480481
className="icon-dim-16 cursor fcn-5"
481-
onClick={(e) => {
482-
setChartName(ChartType.Latency)
483-
}}
482+
onClick={openTempAppWindow(ChartType.Latency)}
484483
/>
485484
</div>
486485
</Tippy>

0 commit comments

Comments
 (0)