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;