@@ -21,6 +21,16 @@ const CHART_COLORS = [
2121 'hsl(var(--chart-5))' ,
2222] ;
2323
24+ /** Returns true when the widget data config uses provider: 'object' (async data source). */
25+ function isObjectProvider ( widgetData : unknown ) : widgetData is { provider : 'object' ; object ?: string ; aggregate ?: any } {
26+ return (
27+ widgetData != null &&
28+ typeof widgetData === 'object' &&
29+ ! Array . isArray ( widgetData ) &&
30+ ( widgetData as any ) . provider === 'object'
31+ ) ;
32+ }
33+
2434export interface DashboardRendererProps {
2535 schema : DashboardSchema ;
2636 className ?: string ;
@@ -118,7 +128,7 @@ export const DashboardRenderer = forwardRef<HTMLDivElement, DashboardRendererPro
118128 const yField = options . yField || 'value' ;
119129
120130 // provider: 'object' — delegate to ObjectChart for async data loading
121- if ( widgetData && typeof widgetData === 'object' && ! Array . isArray ( widgetData ) && widgetData . provider === 'object' ) {
131+ if ( isObjectProvider ( widgetData ) ) {
122132 return {
123133 type : 'object-chart' ,
124134 chartType : widgetType ,
@@ -149,7 +159,7 @@ export const DashboardRenderer = forwardRef<HTMLDivElement, DashboardRendererPro
149159 const widgetData = ( widget as any ) . data || options . data ;
150160
151161 // provider: 'object' — pass through object config for async data loading
152- if ( widgetData && typeof widgetData === 'object' && ! Array . isArray ( widgetData ) && widgetData . provider === 'object' ) {
162+ if ( isObjectProvider ( widgetData ) ) {
153163 return {
154164 type : 'data-table' ,
155165 ...options ,
@@ -175,7 +185,7 @@ export const DashboardRenderer = forwardRef<HTMLDivElement, DashboardRendererPro
175185 const widgetData = ( widget as any ) . data || options . data ;
176186
177187 // provider: 'object' — pass through object config for async data loading
178- if ( widgetData && typeof widgetData === 'object' && ! Array . isArray ( widgetData ) && widgetData . provider === 'object' ) {
188+ if ( isObjectProvider ( widgetData ) ) {
179189 return {
180190 type : 'pivot' ,
181191 ...options ,
0 commit comments