diff --git a/web/src/app/services/AlertMetrics/AlertAveragesGraph.tsx b/web/src/app/services/AlertMetrics/AlertAveragesGraph.tsx index c1ea7b054a..b5b2b034fe 100644 --- a/web/src/app/services/AlertMetrics/AlertAveragesGraph.tsx +++ b/web/src/app/services/AlertMetrics/AlertAveragesGraph.tsx @@ -2,12 +2,12 @@ import React from 'react' import { Grid, Paper, Typography } from '@mui/material' import makeStyles from '@mui/styles/makeStyles/makeStyles' import { Theme, useTheme } from '@mui/material/styles' +import AutoSizer from 'react-virtualized-auto-sizer' import { XAxis, YAxis, CartesianGrid, Tooltip, - ResponsiveContainer, LineChart, Line, Legend, @@ -59,81 +59,83 @@ export default function AlertAveragesGraph( return ( - - - - - - { - if (!active || !payload?.length) return null - - const ackAvg = `${payload[0].name}: ${Math.round( - payload[0].payload.avgTimeToAck, - )} min` - const closeAvg = `${payload[1].name}: ${Math.round( - payload[1].payload.avgTimeToClose, - )} min` - return ( - - {label} - {closeAvg} - {ackAvg} - - ) + + {({ width, height }) => ( + - - - - - + > + + + + { + if (!active || !payload?.length) return null + + const ackAvg = `${payload[0].name}: ${Math.round( + payload[0].payload.avgTimeToAck, + )} min` + const closeAvg = `${payload[1].name}: ${Math.round( + payload[1].payload.avgTimeToClose, + )} min` + return ( + + {label} + {closeAvg} + {ackAvg} + + ) + }} + /> + + + + + )} + ) diff --git a/web/src/app/services/AlertMetrics/AlertCountGraph.tsx b/web/src/app/services/AlertMetrics/AlertCountGraph.tsx index 29fc868205..41388c8990 100644 --- a/web/src/app/services/AlertMetrics/AlertCountGraph.tsx +++ b/web/src/app/services/AlertMetrics/AlertCountGraph.tsx @@ -2,12 +2,12 @@ import React from 'react' import { Grid, Paper, Typography } from '@mui/material' import makeStyles from '@mui/styles/makeStyles/makeStyles' import { Theme, useTheme } from '@mui/material/styles' +import AutoSizer from 'react-virtualized-auto-sizer' import { XAxis, YAxis, CartesianGrid, Tooltip, - ResponsiveContainer, BarChart, Bar, Legend, @@ -37,72 +37,76 @@ export default function AlertCountGraph( return ( - - - - - - { - if (!active || !payload?.length) return null - - const alertCountStr = `${payload[1].name}: ${ - (payload[1].value as number) + (payload[0].value as number) - }` - const escalatedCountStr = `${payload[0].name}: ${payload[0].value}` - return ( - - {label} - {alertCountStr} - {escalatedCountStr} - - ) + + {({ width, height }) => ( + - - - - - + > + + + + { + if (!active || !payload?.length) return null + + const alertCountStr = `${payload[1].name}: ${ + (payload[1].value as number) + (payload[0].value as number) + }` + const escalatedCountStr = `${payload[0].name}: ${payload[0].value}` + return ( + + {label} + {alertCountStr} + + {escalatedCountStr} + + + ) + }} + /> + + + + + )} + ) diff --git a/web/src/package.json b/web/src/package.json index 864a3fb50a..fa7c6037c2 100644 --- a/web/src/package.json +++ b/web/src/package.json @@ -54,6 +54,7 @@ "react-markdown": "8.0.0", "react-redux": "8.0.0", "react-transition-group": "4.4.2", + "react-virtualized-auto-sizer": "1.0.6", "recharts": "2.1.8", "redux-thunk": "2.4.0", "remark-gfm": "3.0.0", @@ -71,6 +72,7 @@ "@types/react-beautiful-dnd": "13.1.1", "@types/react-big-calendar": "0.38.0", "@types/react-dom": "18.0.1", + "@types/react-virtualized-auto-sizer": "1.0.1", "chance": "1.1.7", "cypress": "9.7.0", "esbuild-jest": "0.5.0", diff --git a/yarn.lock b/yarn.lock index 48ae00d12c..ecaf6b3d22 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1441,6 +1441,13 @@ dependencies: "@types/react" "*" +"@types/react-virtualized-auto-sizer@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.1.tgz#b3187dae1dfc4c15880c9cfc5b45f2719ea6ebd4" + integrity sha512-GH8sAnBEM5GV9LTeiz56r4ZhMOUSrP43tAQNSRVxNexDjcNKLCEtnxusAItg1owFUFE6k0NslV26gqVClVvong== + dependencies: + "@types/react" "*" + "@types/react@*", "@types/react@18.0.5", "@types/react@>=16.9.11": version "18.0.5" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.5.tgz#1a4d4b705ae6af5aed369dec22800b20f89f5301" @@ -6609,6 +6616,11 @@ react-transition-group@4.4.2, react-transition-group@^4.4.2: loose-envify "^1.4.0" prop-types "^15.6.2" +react-virtualized-auto-sizer@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/react-virtualized-auto-sizer/-/react-virtualized-auto-sizer-1.0.6.tgz#66c5b1c9278064c5ef1699ed40a29c11518f97ca" + integrity sha512-7tQ0BmZqfVF6YYEWcIGuoR3OdYe8I/ZFbNclFlGOC3pMqunkYF/oL30NCjSGl9sMEb17AnzixDz98Kqc3N76HQ== + react@18.1.0: version "18.1.0" resolved "https://registry.yarnpkg.com/react/-/react-18.1.0.tgz#6f8620382decb17fdc5cc223a115e2adbf104890"