import React, { useMemo } from "react"
import BoxFull from "./BoxFull"
import ChartComponent from "react-chartjs-2"


export default function BoxChart({ chartProps, ...props }) {
    const getCssVar = (variable) => {
        const computedStyle = window.getComputedStyle(document.querySelector("main"))
        return computedStyle.getPropertyValue(variable).trim()
    }

    const chart = useMemo(
        () => (
            <ChartComponent
                options={{
                    responsive: true,
                    scales: {
                        x: {
                            beginAtZero: true,
                            grid: {
                                borderColor: getCssVar("--bg-light"),
                                color: getCssVar("--bg-light"),
                            },
                            ticks: {
                                color: getCssVar("--fg-primary"),
                            },
                        },
                        y: {
                            beginAtZero: true,
                            grid: {
                                borderColor: getCssVar("--bg-light"),
                                color: getCssVar("--bg-light"),
                            },
                            ticks: {
                                color: getCssVar("--fg-primary"),
                            },
                        },
                    },
                    elements: {
                        bar: {
                            backgroundColor: getCssVar("--fg-primary"),
                            borderColor: "transparent",
                            color: getCssVar("--fg-primary"),
                        },
                    },
                    plugins: {
                        legend: {
                            display: false,
                        },
                    },
                }}
                {...chartProps}
            />
        ),
        [chartProps],
    )

    return (
        <BoxFull {...props}>
            {chart}
        </BoxFull>
    )
}