This is an automated email from the ASF dual-hosted git repository. rusackas pushed a commit to branch feat/glyph-single-file in repository https://gitbox.apache.org/repos/asf/superset.git
commit ae1728e571c0adf30a507d2412fd17e30fb7b63c Author: Evan Rusackas <[email protected]> AuthorDate: Mon May 25 19:33:38 2026 -0700 fix(glyph): pass merged render props directly, not via .transformedProps defineChart's render function receives the spread merge of base props (width/height/data/theme/formData) and the transform's return — there is no `transformedProps` property on the render args. The previous `({ transformedProps }) => <Comp {...(transformedProps as any)} />` pattern was destructuring undefined, so every deckgl layer (plus the newly consolidated point-cluster-map) was rendering its component with no props. The `any` cast hid this from TypeScript. The reason it never showed up in unit tests is that those tests cover transformProps/buildQuery in isolation, not the full render path. Affects: - preset-chart-deckgl Arc, Contour, Geojson, Grid, Heatmap, Hex, Path, Polygon, Scatter, Screengrid, Multi - plugin-chart-point-cluster-map 258 plugin tests still pass. Co-Authored-By: Claude Sonnet 4.6 <[email protected]> --- .../plugins/plugin-chart-point-cluster-map/src/index.tsx | 3 ++- superset-frontend/plugins/preset-chart-deckgl/src/Multi/index.tsx | 4 ++-- .../plugins/preset-chart-deckgl/src/layers/Arc/index.tsx | 4 +--- .../plugins/preset-chart-deckgl/src/layers/Contour/index.tsx | 4 ++-- .../plugins/preset-chart-deckgl/src/layers/Geojson/index.tsx | 4 ++-- .../plugins/preset-chart-deckgl/src/layers/Grid/index.tsx | 7 ++++--- .../plugins/preset-chart-deckgl/src/layers/Heatmap/index.tsx | 4 ++-- .../plugins/preset-chart-deckgl/src/layers/Hex/index.tsx | 4 ++-- .../plugins/preset-chart-deckgl/src/layers/Path/index.tsx | 4 ++-- .../plugins/preset-chart-deckgl/src/layers/Polygon/index.tsx | 4 ++-- .../plugins/preset-chart-deckgl/src/layers/Scatter/index.tsx | 7 +++---- .../plugins/preset-chart-deckgl/src/layers/Screengrid/index.tsx | 4 ++-- 12 files changed, 26 insertions(+), 27 deletions(-) diff --git a/superset-frontend/plugins/plugin-chart-point-cluster-map/src/index.tsx b/superset-frontend/plugins/plugin-chart-point-cluster-map/src/index.tsx index 73752ee05f0..de7d2cb9690 100644 --- a/superset-frontend/plugins/plugin-chart-point-cluster-map/src/index.tsx +++ b/superset-frontend/plugins/plugin-chart-point-cluster-map/src/index.tsx @@ -779,5 +779,6 @@ export default defineChart<Record<string, never>, any>({ buildQuery: (formData: any) => buildQuery(formData as MapLibreFormData), transform: chartProps => transformProps(chartProps), // eslint-disable-next-line @typescript-eslint/no-explicit-any - render: ({ transformedProps }) => <MapLibre {...(transformedProps as any)} />, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + render: props => <MapLibre {...(props as any)} />, }); diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/Multi/index.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/Multi/index.tsx index ea731d34e0b..91bc9181eea 100644 --- a/superset-frontend/plugins/preset-chart-deckgl/src/Multi/index.tsx +++ b/superset-frontend/plugins/preset-chart-deckgl/src/Multi/index.tsx @@ -109,8 +109,8 @@ export default defineChart<Record<string, never>, any>({ }, ], transform: chartProps => transformProps(chartProps), - render: ({ transformedProps }) => ( + render: props => ( // eslint-disable-next-line @typescript-eslint/no-explicit-any - <MultiComponent {...(transformedProps as any)} /> + <MultiComponent {...(props as any)} /> ), }); diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Arc/index.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Arc/index.tsx index 0ea25fada39..e3b85b10115 100644 --- a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Arc/index.tsx +++ b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Arc/index.tsx @@ -384,7 +384,5 @@ export default defineChart<Record<string, never>, any>({ }, buildQuery: (formData: any) => buildQuery(formData as DeckArcFormData), transform: chartProps => transformProps(chartProps), - render: ({ transformedProps }) => ( - <ArcComponent {...(transformedProps as any)} /> - ), + render: props => <ArcComponent {...(props as any)} />, }); diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Contour/index.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Contour/index.tsx index 59e0d6164b7..aaf808275b4 100644 --- a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Contour/index.tsx +++ b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Contour/index.tsx @@ -180,8 +180,8 @@ export default defineChart<Record<string, never>, any>({ buildQuery: (formData: any) => buildSpatialQuery(formData as DeckContourFormData), transform: chartProps => transformSpatialProps(chartProps), - render: ({ transformedProps }) => ( + render: props => ( // eslint-disable-next-line @typescript-eslint/no-explicit-any - <ContourComponent {...(transformedProps as any)} /> + <ContourComponent {...(props as any)} /> ), }); diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Geojson/index.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Geojson/index.tsx index af7710fa0ed..b492ee081b9 100644 --- a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Geojson/index.tsx +++ b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Geojson/index.tsx @@ -507,8 +507,8 @@ export default defineChart<Record<string, never>, any>({ // eslint-disable-next-line @typescript-eslint/no-explicit-any buildQuery: (formData: any) => buildQuery(formData as DeckGeoJsonFormData), transform: chartProps => transformProps(chartProps), - render: ({ transformedProps }) => ( + render: props => ( // eslint-disable-next-line @typescript-eslint/no-explicit-any - <GeojsonComponent {...(transformedProps as any)} /> + <GeojsonComponent {...(props as any)} /> ), }); diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Grid/index.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Grid/index.tsx index 97737ce29aa..626f7590f13 100644 --- a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Grid/index.tsx +++ b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Grid/index.tsx @@ -129,10 +129,11 @@ export default defineChart<Record<string, never>, any>({ size: getStandardizedControls().shiftMetric(), }), // eslint-disable-next-line @typescript-eslint/no-explicit-any - buildQuery: (formData: any) => buildSpatialQuery(formData as DeckGridFormData), + buildQuery: (formData: any) => + buildSpatialQuery(formData as DeckGridFormData), transform: chartProps => transformSpatialProps(chartProps), - render: ({ transformedProps }) => ( + render: props => ( // eslint-disable-next-line @typescript-eslint/no-explicit-any - <GridComponent {...(transformedProps as any)} /> + <GridComponent {...(props as any)} /> ), }); diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Heatmap/index.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Heatmap/index.tsx index 2b7167ec536..0591d06ee14 100644 --- a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Heatmap/index.tsx +++ b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Heatmap/index.tsx @@ -193,8 +193,8 @@ export default defineChart<Record<string, never>, any>({ // eslint-disable-next-line @typescript-eslint/no-explicit-any buildQuery: (formData: any) => buildSpatialQuery(formData as SpatialFormData), transform: chartProps => transformSpatialProps(chartProps), - render: ({ transformedProps }) => ( + render: props => ( // eslint-disable-next-line @typescript-eslint/no-explicit-any - <HeatmapComponent {...(transformedProps as any)} /> + <HeatmapComponent {...(props as any)} /> ), }); diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Hex/index.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Hex/index.tsx index dd6e3500575..fe9a6958153 100644 --- a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Hex/index.tsx +++ b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Hex/index.tsx @@ -153,8 +153,8 @@ export default defineChart<Record<string, never>, any>({ // eslint-disable-next-line @typescript-eslint/no-explicit-any buildQuery: (formData: any) => buildSpatialQuery(formData as DeckHexFormData), transform: chartProps => transformSpatialProps(chartProps), - render: ({ transformedProps }) => ( + render: props => ( // eslint-disable-next-line @typescript-eslint/no-explicit-any - <HexComponent {...(transformedProps as any)} /> + <HexComponent {...(props as any)} /> ), }); diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Path/index.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Path/index.tsx index 5b67cf2fdb9..a7d3eb69873 100644 --- a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Path/index.tsx +++ b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Path/index.tsx @@ -358,8 +358,8 @@ export default defineChart<Record<string, never>, any>({ // eslint-disable-next-line @typescript-eslint/no-explicit-any buildQuery: (formData: any) => buildQuery(formData as DeckPathFormData), transform: chartProps => transformProps(chartProps), - render: ({ transformedProps }) => ( + render: props => ( // eslint-disable-next-line @typescript-eslint/no-explicit-any - <PathComponent {...(transformedProps as any)} /> + <PathComponent {...(props as any)} /> ), }); diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Polygon/index.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Polygon/index.tsx index 0f4dd52189b..3782ef8cce1 100644 --- a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Polygon/index.tsx +++ b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Polygon/index.tsx @@ -514,8 +514,8 @@ export default defineChart<Record<string, never>, any>({ // eslint-disable-next-line @typescript-eslint/no-explicit-any buildQuery: (formData: any) => buildQuery(formData as DeckPolygonFormData), transform: chartProps => transformProps(chartProps), - render: ({ transformedProps }) => ( + render: props => ( // eslint-disable-next-line @typescript-eslint/no-explicit-any - <PolygonComponent {...(transformedProps as any)} /> + <PolygonComponent {...(props as any)} /> ), }); diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Scatter/index.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Scatter/index.tsx index 9ce18969b32..3438a851101 100644 --- a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Scatter/index.tsx +++ b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Scatter/index.tsx @@ -84,8 +84,7 @@ import exampleDark from './images/example-dark.png'; // ─── Types ─────────────────────────────────────────────────────────────────── export interface DeckScatterFormData - extends Omit<SpatialFormData, 'color_picker'>, - SqlaFormData { + extends Omit<SpatialFormData, 'color_picker'>, SqlaFormData { // Can be a string (legacy format) or an object with type and value point_radius_fixed?: | string // Legacy format: metric name directly @@ -431,8 +430,8 @@ export default defineChart<Record<string, never>, any>({ // eslint-disable-next-line @typescript-eslint/no-explicit-any buildQuery: (formData: any) => buildQuery(formData as DeckScatterFormData), transform: chartProps => transformProps(chartProps), - render: ({ transformedProps }) => ( + render: props => ( // eslint-disable-next-line @typescript-eslint/no-explicit-any - <ScatterComponent {...(transformedProps as any)} /> + <ScatterComponent {...(props as any)} /> ), }); diff --git a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Screengrid/index.tsx b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Screengrid/index.tsx index 3d2f08ed8e4..00fc85b9ef4 100644 --- a/superset-frontend/plugins/preset-chart-deckgl/src/layers/Screengrid/index.tsx +++ b/superset-frontend/plugins/preset-chart-deckgl/src/layers/Screengrid/index.tsx @@ -143,8 +143,8 @@ export default defineChart<Record<string, never>, any>({ // eslint-disable-next-line @typescript-eslint/no-explicit-any buildQuery: (formData: any) => buildSpatialQuery(formData as SpatialFormData), transform: chartProps => transformSpatialProps(chartProps), - render: ({ transformedProps }) => ( + render: props => ( // eslint-disable-next-line @typescript-eslint/no-explicit-any - <ScreengridComponent {...(transformedProps as any)} /> + <ScreengridComponent {...(props as any)} /> ), });
