import { LineChart, XAxis, YAxis, Line, Tooltip, Legend } from "recharts"; import { timeFormat } from "d3-time-format"; interface ToolTipProps { active?: boolean, payload?: object, unit?: string } const defaultProps = { active: false, payload: Object, unit: "", }; interface TimedValue { time: Date; value: Number; } interface ChartProps { // eslint-disable-next-line react/require-default-props data?: TimedValue[], color: string, unit: string, // eslint-disable-next-line react/require-default-props dataCollections?: any[], } function CustomizedTooltip(props: ToolTipProps) { const { active, payload, unit } = props; if (active && payload && payload[0]) { const time = payload[0].payload ? timeFormat("%I:%M")(new Date(payload[0].payload.time)) : ""; return (

{time} {payload[0].payload.value} {unit}

); } return null; } CustomizedTooltip.defaultProps = defaultProps; export default function Chart({ data, color, unit, dataCollections }: ChartProps) { if (!data && !dataCollections) { return null; } const timeFormatter = (tick: string) => { return timeFormat("%I:%M")(new Date(tick)); }; let ticks if (dataCollections.length > 0) { ticks = dataCollections[0].data?.map(function (collection) { return collection?.time; }) } else if (data?.length > 0){ ticks = data?.map(function (item) { return item?.time; }); } return ( } /> {dataCollections?.map((s) => ( ))} ); } Chart.defaultProps = { dataCollections: [], };