Skip to content

Commit 4825a86

Browse files
authored
Fixed bug resulting in tables crashing when an 'id' field is null (#220)
1 parent f402a97 commit 4825a86

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

src/chart/table/TableChart.tsx

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,14 @@ const NeoTableChart = (props: ChartProps) => {
5050

5151
const records = props.records;
5252

53+
const generateSafeColumnKey = (key) => {
54+
return key != "id" ? key : key + " ";
55+
}
5356
const columns = (transposed) ? ["Field"].concat(records.map((r, j) => "Value" + (j == 0 ? "" : " " + (j + 1).toString()))).map((key, i) => {
5457
const value = key;
5558
return ApplyColumnType({
56-
field: key,
57-
headerName: key,
59+
field: generateSafeColumnKey(key),
60+
headerName: generateSafeColumnKey(key),
5861
headerClassName: 'table-small-header',
5962
disableColumnSelector: true,
6063
flex: (columnWidths && i < columnWidths.length) ? columnWidths[i] : 1,
@@ -63,20 +66,25 @@ const NeoTableChart = (props: ChartProps) => {
6366
}) : records[0].keys.map((key, i) => {
6467
const value = records[0].get(key);
6568
return ApplyColumnType({
66-
field: key,
67-
headerName: key,
69+
field: generateSafeColumnKey(key),
70+
headerName: generateSafeColumnKey(key),
6871
headerClassName: 'table-small-header',
6972
disableColumnSelector: true,
7073
flex: (columnWidths && i < columnWidths.length) ? columnWidths[i] : 1,
7174
disableClickEventBubbling: true
7275
}, value)
7376
});
7477

75-
const rows = (transposed) ? records[0].keys.map((key, i) => {
76-
return Object.assign({ id: i, Field: key }, ...records.map((r, j) => ({ ["Value" + (j == 0 ? "" : " " + (j + 1).toString())]: RenderSubValue(r._fields[i]) })));
77-
}) : records.map((record, rownumber) => {
78-
return Object.assign({ id: rownumber }, ...record._fields.map((field, i) => ({ [record.keys[i]]: field })));
79-
});
78+
const rows = (transposed) ?
79+
records[0].keys.map((key, i) => {
80+
return Object.assign(
81+
{ id: i, Field: key },
82+
...records.map((r, j) => ({ ["Value" + (j == 0 ? "" : " " + (j + 1).toString())]: RenderSubValue(r._fields[i]) })));
83+
}) : records.map((record, rownumber) => {
84+
return Object.assign(
85+
{ id: rownumber },
86+
...record._fields.map((field, i) => ({ [generateSafeColumnKey(record.keys[i])]: field })));
87+
});
8088

8189
return (
8290
<div className={classes.root} style={{ height: "100%", width: '100%', position: "relative" }}>

0 commit comments

Comments
 (0)