blob: 7b1f56dbccb6d97e6ebeeaad0a35ec1eff8ba652 [file] [log] [blame]
import { useGithubIssueQueryCountTaskResult } from "./data/GithubIssueQueryCountTask";
import {
Legend,
Line,
LineChart,
ResponsiveContainer,
Tooltip,
XAxis,
YAxis,
} from "recharts";
import { DateTime } from "luxon";
export interface GithubIssueQueryCountTaskResultChartProps {
queryIds: Array<string>;
days: number
}
export default function GithubIssueQueryCountTaskResultChart({
queryIds,
days,
}: GithubIssueQueryCountTaskResultChartProps) {
const { data, loading, error } = useGithubIssueQueryCountTaskResult(
"bazelbuild",
"bazel",
queryIds,
"DAILY",
days
);
if (loading) {
return <span>Loading</span>;
}
if (error) {
return <span>Error</span>;
}
return (
<ResponsiveContainer height={300}>
<LineChart margin={{ left: -20 }}>
{data.map((result) => {
return (
<Line
connectNulls
key={result.id}
type="monotone"
isAnimationActive={false}
dot={false}
data={result.items}
dataKey="count"
name={result.name}
activeDot={{
onClick: () => {
window.open(result.url, "_blank");
},
}}
/>
);
})}
<XAxis
dataKey={(data) => {
return DateTime.fromISO(data.timestamp).toFormat("MM-dd");
}}
/>
<YAxis />
<Tooltip />
{data.length > 1 && <Legend />}
</LineChart>
</ResponsiveContainer>
);
}