import React from 'react'
import ReactApexChart from 'react-apexcharts'
import './styles.css'

// This demo also loads: https://cdn.jsdelivr.net/npm/apexcharts/dist/unit-shapes.js

const ApexChart = () => {
  const [state, setState] = React.useState({
    series: [576, 168, 42, 34],
    options: {
      chart: {
        type: 'unit',
        height: 420,
        animations: {
          enabled: true,
          speed: 900,
        },
      },
      labels: ['Available', 'Reserved', 'Charging', 'Critical'],
      colors: ['#00A96E', '#0EB8C4', '#FFAB00', '#FF4560'],
      plotOptions: {
        unit: {
          layout: 'custom',
          // One of the shapes in apexcharts/unit-shapes.
          positions: 'battery',
          transition: 'flow',
          clusterLabels: {
            show: false,
          },
        },
      },
      legend: {
        position: 'bottom',
      },
    },
  })

  return (
    <div>
      <div className="wrap">
        <h1>820 MWh of grid storage, one dot per MWh</h1>
        <p>
          A battery body with its terminal, filled left to right. The layout
          hands out its dots in column order rather than row order, which is all
          it takes for the first category to read as a charge level instead of a
          band across the top.
        </p>

        <div className="chart-wrap">
          <div id="chart">
            <ReactApexChart
              options={state.options}
              series={state.series}
              type="unit"
              height={420}
            />
          </div>
        </div>

        <p className="note">1 dot = 1 MWh of capacity</p>
      </div>
    </div>
  )
}

export default ApexChart
Battery Storage - React Unit Charts | ApexCharts.js | ApexCharts.js