Unified · Split
| @@ -303,26 +303,25 @@ function ChartLegendContent({ · 302 unmodified lines | |||
| 303 | } | 303 | } |
| 304 | 304 | ||
| 305 | // Helper to extract item config from a payload. | 305 | // Helper to extract item config from a payload. |
| 306 | const isRecord = (value: unknown): value is Record<string, unknown> => | ||
| 307 | typeof value === "object" && value !== null && !Array.isArray(value); | ||
| 308 | |||
| 306 | function getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) { | 309 | function getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) { |
| 307 | if (typeof payload !== "object" || payload === null) { | 310 | if (!isRecord(payload)) { |
| 308 | return undefined; | 311 | return undefined; |
| 309 | } | 312 | } |
| 310 | 313 | ||
| 311 | const payloadPayload = | 314 | const payloadPayload = isRecord(payload.payload) ? payload.payload : undefined; |
| 312 | "payload" in payload && typeof payload.payload === "object" && payload.payload !== null | ||
| 313 | ? payload.payload | ||
| 314 | : undefined; | ||
| 315 | 315 | ||
| 316 | let configLabelKey: string = key; | 316 | let configLabelKey: string = key; |
| 317 | 317 | ||
| 318 | if (key in payload && typeof payload[key as keyof typeof payload] === "string") { | 318 | if (typeof payload[key] === "string") { |
| 319 | configLabelKey = payload[key as keyof typeof payload] as string; | 319 | configLabelKey = payload[key]; |
| 320 | } else if ( | 320 | } else if ( |
| 321 | payloadPayload && | 321 | payloadPayload && |
| 322 | key in payloadPayload && | 322 | typeof payloadPayload[key] === "string" |
| 323 | typeof payloadPayload[key as keyof typeof payloadPayload] === "string" | ||
| 324 | ) { | 323 | ) { |
| 325 | configLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string; | 324 | configLabelKey = payloadPayload[key]; |
| 326 | } | 325 | } |
| 327 | 326 | ||
| 328 | return configLabelKey in config ? config[configLabelKey] : config[key]; | 327 | return configLabelKey in config ? config[configLabelKey] : config[key]; |