"use client";
import React from "react";
import { AgCharts } from "ag-charts-react";
import {
AgBarSeriesOptions,
AgChartOptions,
AgLineSeriesOptions,
AgPieSeriesOptions,
} from "ag-charts-community";
export function BarChart({
data,
xKey,
yKey,
color = "#3c82e6",
height = 300,
}: {
data: any[];
xKey: string;
yKey: string;
color?: string;
height?: number;
}) {
const options: AgChartOptions = {
data,
series: [
{
type: "bar",
xKey,
yKey,
fill: color,
} as AgBarSeriesOptions,
],
height,
};
return ;
}
export function LineChart({
data,
xKey,
yKey,
color = "#3b82f6",
height = 300,
}: {
data: any[];
xKey: string;
yKey: string;
color?: string;
height?: number;
}) {
const options: AgChartOptions = {
data,
series: [
{
type: "line",
xKey,
yKey,
stroke: color,
strokeWidth: 3,
marker: {
size: 6,
fill: color,
stroke: "#ffffff",
strokeWidth: 2,
},
} as AgLineSeriesOptions,
],
height,
};
return ;
}
export function PieChart({
data,
labelKey,
valueKey,
height = 300,
}: {
data: any[];
labelKey: string;
valueKey: string;
height?: number;
}) {
const options: AgChartOptions = {
data,
series: [
{
type: "pie",
labelKey,
angleKey: valueKey,
} as AgPieSeriesOptions,
],
height,
};
return ;
}
export function AreaChart({
data,
xKey,
yKey,
color = "#3b82f6",
height = 300,
}: {
data: any[];
xKey: string;
yKey: string;
color?: string;
height?: number;
}) {
const options: AgChartOptions = {
data,
series: [
{
type: "area",
xKey,
yKey,
fill: color,
stroke: color,
strokeWidth: 2,
},
],
height,
};
return ;
}