| import React from 'react'; | |
| import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts'; | |
| import type { TimeStats } from '../../utils/analysis.utils.ts'; | |
| type TimeSeriesChartProps = { | |
| data: TimeStats[]; | |
| }; | |
| const TimeSeriesChart = ({ data }: TimeSeriesChartProps) => { | |
| // Format date for display | |
| const chartData = data.map((item) => ({ | |
| ...item, | |
| dateDisplay: new Date(item.date).toLocaleDateString('en-US', { | |
| month: 'short', | |
| day: 'numeric', | |
| }), | |
| })); | |
| return ( | |
| <div className="h-64 w-full"> | |
| <ResponsiveContainer width="100%" height="100%"> | |
| <LineChart | |
| data={chartData} | |
| margin={{ top: 5, right: 30, left: 20, bottom: 5 }} | |
| > | |
| <CartesianGrid strokeDasharray="3 3" /> | |
| <XAxis dataKey="dateDisplay" /> | |
| <YAxis /> | |
| <Tooltip /> | |
| <Legend /> | |
| <Line | |
| type="monotone" | |
| dataKey="count" | |
| stroke="#3b82f6" | |
| strokeWidth={2} | |
| name="Arguments Analyzed" | |
| /> | |
| </LineChart> | |
| </ResponsiveContainer> | |
| </div> | |
| ); | |
| }; | |
| export default TimeSeriesChart; | |