11import ChartDataLabels from "chartjs-plugin-datalabels" ;
2- import React , { useEffect } from "react" ;
2+ import React , { useEffect , useState } from "react" ;
33import { Bar } from "react-chartjs-2" ;
44import { data as initialData , options } from "../data/WaterfallChartConstant" ;
55import useDynamicData from "../hook/useDynamicData" ;
@@ -23,7 +23,7 @@ const getBackgroundColor = (
2323} ;
2424const WaterfallChart = ( { chartRef } : { chartRef : React . RefObject < any > } ) => {
2525 const isDarkMode = useThemeStore ( ( state ) => state . isDarkMode ) ;
26- const { data, containerRef } = useDynamicData (
26+ const { data : dynamicData , containerRef } = useDynamicData (
2727 initialData ,
2828 ( prevData ) => {
2929 let cumulativeValue = 0 ;
@@ -86,12 +86,26 @@ const WaterfallChart = ({ chartRef }: { chartRef: React.RefObject<any> }) => {
8686 } ,
8787 "WaterfallChart"
8888 ) ;
89+ const [ data , setData ] = useState ( dynamicData ) ;
8990
9091 useEffect ( ( ) => {
91- data . datasets = data . datasets . map ( ( dataset : { data : any [ ] } ) => ( {
92- ...dataset ,
93- backgroundColor : dataset . data . map ( ( value : number [ ] , index : number ) =>
94- getBackgroundColor ( isDarkMode , value , index === dataset . data . length - 1 )
92+ setData ( dynamicData ) ;
93+ } , [ dynamicData ] ) ;
94+
95+ useEffect ( ( ) => {
96+ setData ( ( prevData : any ) => ( {
97+ ...prevData ,
98+ datasets : prevData . datasets . map (
99+ ( dataset : { data : any [ ] } , index : number ) => ( {
100+ ...dataset ,
101+ backgroundColor : dataset . data . map ( ( value : number [ ] , index : number ) =>
102+ getBackgroundColor (
103+ isDarkMode ,
104+ value ,
105+ index === dataset . data . length - 1
106+ )
107+ ) ,
108+ } )
95109 ) ,
96110 } ) ) ;
97111 } , [ isDarkMode ] ) ;
0 commit comments