diff --git a/CHANGELOG.md b/CHANGELOG.md index 846495b3e..a0d3fd9c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Not released +- Fix TableWidget cannot render columns when it contains an array [#802](https://github.com/CartoDB/carto-react/pull/802) - Allow server-side table widget without hard limit [#798](https://github.com/CartoDB/carto-react/pull/798) ## 2.2 diff --git a/packages/react-ui/src/widgets/TableWidgetUI/TableWidgetUI.js b/packages/react-ui/src/widgets/TableWidgetUI/TableWidgetUI.js index fe8fac517..75fcba819 100644 --- a/packages/react-ui/src/widgets/TableWidgetUI/TableWidgetUI.js +++ b/packages/react-ui/src/widgets/TableWidgetUI/TableWidgetUI.js @@ -185,6 +185,10 @@ function TableBodyComponent({ columns, rows, onRowClick }) { })?.[1]; if (typeof cellValue === 'bigint') { cellValue = cellValue.toString(); // otherwise TableCell will fail for displaying it + } else if (Array.isArray(cellValue)) { + cellValue = `[${cellValue + .map((c) => (typeof c === 'string' ? `"${c}"` : c)) + .join(', ')}]`; } return ( (headerName || field) && ( diff --git a/packages/react-widgets/src/models/utils.js b/packages/react-widgets/src/models/utils.js index d6b1ef896..ef3c8fe87 100644 --- a/packages/react-widgets/src/models/utils.js +++ b/packages/react-widgets/src/models/utils.js @@ -104,6 +104,8 @@ function getSqlEscapedSource(table, provider) { export function normalizeObjectKeys(el) { if (Array.isArray(el)) { return el.map(normalizeObjectKeys); + } else if (typeof el !== 'object') { + return el; } return Object.entries(el).reduce((acc, [key, value]) => {