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

// This demo also loads: https://apexcharts.com/samples/assets/github-data.js

// The commit history asset ends in 2018; shift every point forward 8 years
// so the demo lands in 2020-2026 without editing the asset.
var SHIFT = 8 * 365.25 * 24 * 60 * 60 * 1000
var commitSeries = githubdata.series.map(function (p) {
  return { x: p.x + SHIFT, y: p.y }
})

const ApexChart = () => {
  const [state, setState] = React.useState({
    series: [
      {
        name: 'commits',
        data: commitSeries,
      },
    ],
    options: {
      chart: {
        id: 'chartyear',
        type: 'area',
        height: 180,
        background: '#F6F8FA',
        toolbar: {
          show: false,
          autoSelected: 'pan',
        },
        events: {
          mounted: function (chart) {
            var commitsEl = document.querySelector('.cmeta span.commits')
            var commits = chart.getSeriesTotalXRange(
              chart.w.globals.minX,
              chart.w.globals.maxX,
            )

            commitsEl.innerHTML = commits
          },
          updated: function (chart) {
            var commitsEl = document.querySelector('.cmeta span.commits')
            var commits = chart.getSeriesTotalXRange(
              chart.w.globals.minX,
              chart.w.globals.maxX,
            )

            commitsEl.innerHTML = commits
          },
        },
      },
      colors: ['#FF7F00'],
      stroke: {
        width: 0,
        curve: 'monotoneCubic',
      },
      dataLabels: {
        enabled: false,
      },
      fill: {
        opacity: 1,
        type: 'solid',
      },
      yaxis: {
        show: true,
        forceNiceScale: true,
      },
      xaxis: {
        type: 'datetime',
      },
    },
    seriesYears: [
      {
        name: 'commits',
        data: commitSeries,
      },
    ],
    optionsYears: {
      chart: {
        height: 150,
        type: 'area',
        background: '#F6F8FA',
        toolbar: {
          autoSelected: 'selection',
        },
        brush: {
          enabled: true,
          target: 'chartyear',
        },
        selection: {
          enabled: true,
          xaxis: {
            min: new Date('15 Feb 2024').getTime(),
            max: new Date('14 Feb 2025').getTime(),
          },
        },
      },
      colors: ['#7BD39A'],
      dataLabels: {
        enabled: false,
      },
      stroke: {
        width: 0,
        curve: 'monotoneCubic',
      },
      fill: {
        opacity: 1,
        type: 'solid',
      },
      legend: {
        position: 'top',
        horizontalAlign: 'left',
      },
      xaxis: {
        type: 'datetime',
      },
    },
  })

  return (
    <div>
      <div id="wrapper">
        <div id="chart-months">
          <ReactApexChart
            options={state.options}
            series={state.series}
            type="area"
            height={180}
          />
        </div>

        <h5 className="github-style">
          <div className="userimg">C</div>
          <div className="userdetails">
            <a className="username">coder</a>
            <span className="cmeta">
              <span className="commits"></span> commits
            </span>
          </div>
        </h5>

        <div id="chart-years">
          <ReactApexChart
            options={state.optionsYears}
            series={state.seriesYears}
            type="area"
            height={150}
          />
        </div>
      </div>
    </div>
  )
}

export default ApexChart
GitHub Style - React Area Charts | ApexCharts.js | ApexCharts.js