Skip to content

Commit 9d3ce91

Browse files
committed
fix: correct recharts type usage in chart component
1 parent b0af108 commit 9d3ce91

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

components/ui/chart.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import * as React from "react";
44
import * as RechartsPrimitive from "recharts";
55
import { type Payload } from "recharts/types/component/DefaultTooltipContent";
6-
import type { ChartDataPayload, ChartIndicator } from "recharts/types/component/DefaultTooltipContent";
76
import type { LegendProps } from "recharts/types/component/Legend";
87
import type { TooltipProps } from "recharts/types/component/Tooltip";
98

@@ -105,13 +104,13 @@ ${colorConfig
105104
};
106105

107106
// Define explicit prop types using Recharts types
108-
interface ChartTooltipProps extends TooltipProps<number | string, string> {
109-
indicator?: ChartIndicator;
107+
interface ChartTooltipProps extends RechartsPrimitive.TooltipProps<number | string, string> {
108+
indicator?: RechartsPrimitive.ChartIndicator;
110109
hideLabel?: boolean;
111110
hideIndicator?: boolean;
112111
labelKey?: string;
113112
labelFormatter?: (label: string, payload: Payload<number | string, string>[]) => React.ReactNode;
114-
formatter?: (value: number | string | Array<number | string>, name: string, item: Payload<number | string, string>, index: number, payload: ChartDataPayload) => React.ReactNode;
113+
formatter?: (value: number | string | Array<number | string>, name: string, item: Payload<number | string, string>, index: number, payload: Payload<number | string, string>["payload"] | undefined) => React.ReactNode;
115114
color?: string;
116115
className?: string;
117116
}
@@ -174,15 +173,15 @@ const ChartTooltip = ({ active, payload, label, className, indicator = "dot", hi
174173
const itemColor = typeof item.color === 'string' ? item.color : undefined;
175174
const indicatorColor: string = color || itemColor || payloadFill || "hsl(var(--primary))";
176175

177-
let formatterPayload: ChartDataPayload = {};
176+
let formatterPayload: Payload<number | string, string>["payload"] | undefined = undefined;
178177
if (
179178
typeof item.payload === 'object' &&
180179
item.payload !== null &&
181180
!(item.payload instanceof Error)
182181
) {
183182
// Disable persistent error for this assignment after checks
184183
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
185-
formatterPayload = item.payload as ChartDataPayload;
184+
formatterPayload = item.payload;
186185
}
187186

188187
const safeValue = (typeof item.value === 'number' || typeof item.value === 'string') ? item.value : 0;

0 commit comments

Comments
 (0)