Cardinal Area Chart

import { Area, AreaChart, XAxis, YAxis, CartesianGrid, Tooltip, createHorizontalChart } from 'recharts';
import { generateMockData, MockDataType, RechartsDevtools } from '@recharts/devtools';
import { curveCardinal } from 'd3-shape';

const data = generateMockData(6, 9823);

const Typed = createHorizontalChart<MockDataType, string, number>()({
  AreaChart,
  CartesianGrid,
  XAxis,
  YAxis,
  Area,
  Tooltip,
});

const cardinal = curveCardinal.tension(0.8);

const CardinalAreaChart = () => {
  return (
    <Typed.AreaChart
      style={{ width: '100%', maxWidth: '700px', maxHeight: '70vh', aspectRatio: 1.618 }}
      responsive
      data={data}
      margin={{
        top: 20,
        right: 0,
        left: 0,
        bottom: 0,
      }}
    >
      <CartesianGrid />
      <Typed.XAxis dataKey="label" />
      <Typed.YAxis width="auto" />
      <Tooltip />
      <Typed.Area type="monotone" dataKey="x" stroke="#8884d8" fill="#8884d8" fillOpacity={0.3} />
      <Typed.Area type={cardinal} dataKey="x" stroke="#82ca9d" fill="#82ca9d" fillOpacity={0.3} />
      <RechartsDevtools />
    </Typed.AreaChart>
  );
};

export default CardinalAreaChart;