"use client"; import { CmsData } from "@/types/TCms"; import { ApexOptions } from "apexcharts"; import dynamic from "next/dynamic"; import { useEffect, useState } from "react"; const ReactApexChart = dynamic(() => import("react-apexcharts"), { ssr: false, }); interface ChartState { series: { name: string; data: number[]; }[]; options: ApexOptions; } const ApexChart = ({ cmsData }: { cmsData?: CmsData }) => { const [state, setState] = useState(null); useEffect(() => { const initialState: ChartState = { series: [ { name: "Sales", data: cmsData?.chart.data.map((item) => item.value) || [10, 10, 10], }, ], options: { chart: { toolbar: { show: false }, height: 350, type: "line", }, forecastDataPoints: { count: 0, }, stroke: { width: 6, curve: "smooth", }, fill: { type: "gradient", gradient: { shade: "dark", type: "horizontal", shadeIntensity: 0.5, gradientToColors: ["#99DDE5"], inverseColors: false, opacityFrom: 1, opacityTo: 1, stops: [0, 100], }, }, colors: ["#0164FF"], xaxis: { categories: cmsData?.chart.data.map((item) => item.key), }, }, }; setState(initialState); }, []); if (!state) { return
Loading...
; } return (
); }; export default ApexChart;