fix: preserve custom style extensions (wordcloud config) in ensureStyle
ensureStyle() was stripping unknown properties like 'wordcloud'. Now collects and preserves all non-standard style keys so chart-type specific configs survive Redux state updates. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
026fe11dff
commit
3bb6dc85c0
|
|
@ -16,8 +16,14 @@ const DEFAULT_STYLE: StyleConfig = {
|
||||||
animation: { enabled: true, duration: 500, easing: 'ease-out' },
|
animation: { enabled: true, duration: 500, easing: 'ease-out' },
|
||||||
};
|
};
|
||||||
|
|
||||||
function ensureStyle(style: any): StyleConfig {
|
function ensureStyle(style: any): StyleConfig & Record<string, any> {
|
||||||
if (!style || typeof style !== 'object') return { ...DEFAULT_STYLE };
|
if (!style || typeof style !== 'object') return { ...DEFAULT_STYLE };
|
||||||
|
// Collect any custom/extension properties (like wordcloud)
|
||||||
|
const known = new Set(['title','colors','legend','xAxis','yAxis','dataLabel','background','border','animation']);
|
||||||
|
const custom: Record<string, any> = {};
|
||||||
|
for (const key of Object.keys(style)) {
|
||||||
|
if (!known.has(key)) custom[key] = style[key];
|
||||||
|
}
|
||||||
return {
|
return {
|
||||||
title: { ...DEFAULT_STYLE.title, ...(style.title ?? {}) },
|
title: { ...DEFAULT_STYLE.title, ...(style.title ?? {}) },
|
||||||
colors: (Array.isArray(style.colors) && style.colors.length > 0) ? style.colors : DEFAULT_STYLE.colors,
|
colors: (Array.isArray(style.colors) && style.colors.length > 0) ? style.colors : DEFAULT_STYLE.colors,
|
||||||
|
|
@ -28,6 +34,7 @@ function ensureStyle(style: any): StyleConfig {
|
||||||
background: { ...DEFAULT_STYLE.background, ...(style.background ?? {}) },
|
background: { ...DEFAULT_STYLE.background, ...(style.background ?? {}) },
|
||||||
border: { ...DEFAULT_STYLE.border, ...(style.border ?? {}) },
|
border: { ...DEFAULT_STYLE.border, ...(style.border ?? {}) },
|
||||||
animation: { ...DEFAULT_STYLE.animation, ...(style.animation ?? {}) },
|
animation: { ...DEFAULT_STYLE.animation, ...(style.animation ?? {}) },
|
||||||
|
...custom, // Preserve wordcloud and any other custom extensions
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue