@@ -24,11 +24,6 @@ export interface CategoryDataPoint {
2424 percentage : number
2525}
2626
27- interface CustomTooltipProps {
28- active ?: boolean
29- payload ?: Array < { color ?: string ; payload : CategoryDataPoint } >
30- }
31-
3227export const MOCK_CATEGORY_DATA : CategoryDataPoint [ ] = [
3328 { name : 'Family Support' , amount : 1800 , percentage : 56 } ,
3429 { name : 'Education' , amount : 850 , percentage : 26 } ,
@@ -112,11 +107,13 @@ interface CategoryDonutChartProps {
112107function CategoryDonutChartInner ( { data = MOCK_CATEGORY_DATA } : CategoryDonutChartProps ) {
113108 const summaryId = useId ( )
114109 const { t } = useClientTranslator ( )
115- const summaryItems = useMemo ( ( ) =>
116- data . map ( ( item ) => `${ item . name } : $${ item . amount . toLocaleString ( ) } (${ item . percentage } %)` ) ,
117- [ data ]
118- ) ;
119- const chartSummary = buildChartSummary ( summaryItems , t ) ;
110+
111+ const summaryItems = useMemo (
112+ ( ) =>
113+ data . map ( ( item ) => `${ item . name } : $${ item . amount . toLocaleString ( ) } (${ item . percentage } %)` ) ,
114+ [ data ] ,
115+ )
116+ const chartSummary = buildChartSummary ( summaryItems , t )
120117 const [ activeCategory , setActiveCategory ] = useState < CategoryDataPoint | null > ( null )
121118 // Use the canonical hook — reactive, SSR-safe, and shared across the codebase.
122119 const reducedMotion = usePrefersReducedMotion ( )
@@ -150,20 +147,10 @@ const chartSummary = buildChartSummary(summaryItems, t);
150147 />
151148 ) ) , [ data , activeCategory , reducedMotion ] )
152149
153- const total = useMemo ( ( ) => data . reduce ( ( s , d ) => s + d . amount , 0 ) , [ data ] )
150+ const total = useMemo ( ( ) => data . reduce ( ( s , d ) => s + d . amount , 0 ) , [ data ] )
154151 const topCat = useMemo ( ( ) => data [ 0 ] , [ data ] )
155-
156-
157-
158- const ariaLabel = useMemo (
159- ( ) => buildChartImageLabel ( 'Top categories' , summaryItems , t ) ,
160- [ summaryItems , t ] ,
161- )
162-
163- const summaryText = useMemo (
164- ( ) => buildChartSummary ( summaryItems , t ) ,
165- [ summaryItems , t ] ,
166- )
152+ const ariaLabel = useMemo ( ( ) => buildChartImageLabel ( 'Top categories' , summaryItems , t ) , [ summaryItems , t ] )
153+ const summaryText = useMemo ( ( ) => buildChartSummary ( summaryItems , t ) , [ summaryItems , t ] )
167154
168155 return (
169156 < div className = "bg-black/40 border border-white/10 rounded-3xl p-5 sm:p-6 backdrop-blur-sm w-full" >
0 commit comments