| 276 | |
| 277 | // Helper to extract item config from a payload. |
| 278 | function getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) { |
| 279 | if (typeof payload !== "object" || payload === null) { |
| 280 | return undefined; |
| 281 | } |
| 282 | |
| 283 | const payloadPayload = |
| 284 | "payload" in payload && typeof payload.payload === "object" && payload.payload !== null |
| 285 | ? payload.payload |
| 286 | : undefined; |
| 287 | |
| 288 | let configLabelKey: string = key; |
| 289 | |
| 290 | if (key in payload && typeof payload[key as keyof typeof payload] === "string") { |
| 291 | configLabelKey = payload[key as keyof typeof payload] as string; |
| 292 | } else if ( |
| 293 | payloadPayload && |
| 294 | key in payloadPayload && |
| 295 | typeof payloadPayload[key as keyof typeof payloadPayload] === "string" |
| 296 | ) { |
| 297 | configLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string; |
| 298 | } |
| 299 | |
| 300 | return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config]; |
| 301 | } |
| 302 | |
| 303 | export { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle }; |