import PropTypes from "prop-types"; import { AreaChart, Area, XAxis, Tooltip, CartesianGrid, ResponsiveContainer, } from "recharts"; import { Box, Stack, Typography } from "@mui/material"; import { useTheme } from "@emotion/react"; import { useMemo } from "react"; import "./index.css"; import { useSelector } from "react-redux"; import { formatDateWithTz } from "../../../Utils/timeUtils"; const CustomToolTip = ({ active, payload, label }) => { const uiTimezone = useSelector((state) => state.ui.timezone); const theme = useTheme(); if (active && payload && payload.length) { return ( {formatDateWithTz(label, "ddd, MMMM D, YYYY, h:mm A", uiTimezone)} Response Time {" "} {payload[0].payload.originalResponseTime} {" "} ms {/* Display original value */} ); } return null; }; const MonitorDetailsAreaChart = ({ checks }) => { const uiTimezone = useSelector((state) => state.ui.timezone); const formatDate = (timestamp) => { return formatDateWithTz(timestamp, "HH:mm:ss", uiTimezone); }; const memoizedChecks = useMemo(() => checks, [checks[0]]); const theme = useTheme(); return ( } /> ); }; MonitorDetailsAreaChart.propTypes = { checks: PropTypes.array, }; CustomToolTip.propTypes = { active: PropTypes.bool, payload: PropTypes.arrayOf( PropTypes.shape({ payload: PropTypes.shape({ originalResponseTime: PropTypes.number.isRequired, }).isRequired, }) ), label: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), }; export default MonitorDetailsAreaChart;