Skip to content

Commit

Permalink
Hotfix array columns not working properly in TableWidget (#802)
Browse files Browse the repository at this point in the history
  • Loading branch information
Josmorsot authored Nov 23, 2023
1 parent 5f07195 commit 2ed88d9
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions packages/react-ui/src/widgets/TableWidgetUI/TableWidgetUI.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) && (
Expand Down
2 changes: 2 additions & 0 deletions packages/react-widgets/src/models/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -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]) => {
Expand Down

0 comments on commit 2ed88d9

Please sign in to comment.