|
1 | | -import React from 'react'; |
| 1 | +import React, { useEffect } from 'react'; |
2 | 2 | import { DataGrid, GridColumnVisibilityModel } from '@mui/x-data-grid'; |
3 | 3 | import { ChartProps } from '../Chart'; |
4 | 4 | import { |
@@ -27,7 +27,7 @@ import { getCheckboxes, hasCheckboxes, updateCheckBoxes } from './TableActionsHe |
27 | 27 | const TABLE_HEADER_HEIGHT = 32; |
28 | 28 | const TABLE_FOOTER_HEIGHT = 62; |
29 | 29 | const TABLE_ROW_HEIGHT = 52; |
30 | | - |
| 30 | +const HIDDEN_COLUMN_PREFIX = '__'; |
31 | 31 | const theme = createTheme({ |
32 | 32 | typography: { |
33 | 33 | fontFamily: "'Nunito Sans', sans-serif !important", |
@@ -87,10 +87,6 @@ export const NeoTableChart = (props: ChartProps) => { |
87 | 87 |
|
88 | 88 | const useStyles = generateClassDefinitionsBasedOnRules(styleRules); |
89 | 89 | const classes = useStyles(); |
90 | | - if (props.records == null || props.records.length == 0 || props.records[0].keys == null) { |
91 | | - return <>No data, re-run the report.</>; |
92 | | - } |
93 | | - |
94 | 90 | const tableRowHeight = compact ? TABLE_ROW_HEIGHT / 2 : TABLE_ROW_HEIGHT; |
95 | 91 | const pageSizeReducer = compact ? 3 : 1; |
96 | 92 |
|
@@ -162,6 +158,17 @@ export const NeoTableChart = (props: ChartProps) => { |
162 | 158 | ); |
163 | 159 | }); |
164 | 160 |
|
| 161 | + useEffect(() => { |
| 162 | + const hiddenColumns = Object.assign( |
| 163 | + {}, |
| 164 | + ...columns.filter((x) => x.field.startsWith(HIDDEN_COLUMN_PREFIX)).map((x) => ({ [x.field]: false })) |
| 165 | + ); |
| 166 | + setColumnVisibilityModel(hiddenColumns); |
| 167 | + }, [records]); |
| 168 | + |
| 169 | + if (props.records == null || props.records.length == 0 || props.records[0].keys == null) { |
| 170 | + return <>No data, re-run the report.</>; |
| 171 | + } |
165 | 172 | const getTransposedRows = (records) => { |
166 | 173 | // Skip first key |
167 | 174 | const rowKeys = [...records[0].keys]; |
|
0 commit comments