Added reusable line chart.
This commit is contained in:
64
src/components/charts/LineChart.tsx
Normal file
64
src/components/charts/LineChart.tsx
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
import { JSX } from "react";
|
||||||
|
import { Chart, useChart } from "@chakra-ui/charts";
|
||||||
|
import {
|
||||||
|
CartesianGrid,
|
||||||
|
Line,
|
||||||
|
LineChart,
|
||||||
|
Tooltip,
|
||||||
|
XAxis,
|
||||||
|
YAxis
|
||||||
|
} from "recharts";
|
||||||
|
import { LineChartArr } from "@/types/LineChartStats";
|
||||||
|
|
||||||
|
interface LineChartComponentProps {
|
||||||
|
label: "Triggers" | "Links Deleted" | "Commands";
|
||||||
|
data: LineChartArr;
|
||||||
|
}
|
||||||
|
|
||||||
|
const LineChartComponent = ({
|
||||||
|
data,
|
||||||
|
label
|
||||||
|
}: LineChartComponentProps): JSX.Element => {
|
||||||
|
const chart = useChart({
|
||||||
|
data: [...data],
|
||||||
|
series: [{ name: label, color: "blue.700" }]
|
||||||
|
});
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Chart.Root maxH="xs" chart={chart} maxW="100%">
|
||||||
|
<LineChart data={chart.data}>
|
||||||
|
<CartesianGrid stroke={chart.color("border")} vertical={false} />
|
||||||
|
<XAxis
|
||||||
|
// axisLine={false}
|
||||||
|
dataKey={chart.key("day")}
|
||||||
|
stroke={chart.color("border")}
|
||||||
|
label={{ value: "Day", position: "bottom" }}
|
||||||
|
/>
|
||||||
|
<YAxis
|
||||||
|
// axisLine={false}
|
||||||
|
tickLine={false}
|
||||||
|
tickMargin={10}
|
||||||
|
stroke={chart.color("border")}
|
||||||
|
label={{ value: label, position: "left", angle: -90 }}
|
||||||
|
/>
|
||||||
|
<Tooltip
|
||||||
|
animationDuration={100}
|
||||||
|
cursor={false}
|
||||||
|
content={<Chart.Tooltip />}
|
||||||
|
/>
|
||||||
|
{chart.series.map((item) => (
|
||||||
|
<Line
|
||||||
|
key={item.name}
|
||||||
|
isAnimationActive={false}
|
||||||
|
dataKey={chart.key(item.name)}
|
||||||
|
stroke={chart.color(item.color)}
|
||||||
|
strokeWidth={2}
|
||||||
|
dot={false}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
</LineChart>
|
||||||
|
</Chart.Root>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default LineChartComponent;
|
||||||
Reference in New Issue
Block a user