import { Plugin } from "chart.js";

export const chartVLine = (vLineColor: string) =>
	({
		id: "vLine",
		beforeDraw(chart, args, options) {
			if (chart.tooltip?._active?.length) {
				const ctx = chart.ctx;
				const xs = chart.tooltip._active.map((a) => a.element.x);
				const x = xs.reduce((a, b) => a + b, 0) / xs.length;
				const topY = chart.scales.y.top;
				const bottomY = chart.scales.y.bottom;

				ctx.save();
				ctx.beginPath();
				ctx.moveTo(x, bottomY);
				ctx.lineTo(x, topY);
				ctx.lineWidth = 1;
				ctx.strokeStyle = vLineColor;
				ctx.stroke();
				ctx.restore();
			}
		},
	}) as Plugin;
