1
1
import React from 'react' ;
2
- import { DataGrid } from '@mui/x-data-grid' ;
2
+ import { DataGrid , GridColumnVisibilityModel } from '@mui/x-data-grid' ;
3
3
import { ChartProps } from '../Chart' ;
4
4
import {
5
5
evaluateRulesOnDict ,
@@ -26,7 +26,6 @@ import { extensionEnabled } from '../../utils/ReportUtils';
26
26
const TABLE_HEADER_HEIGHT = 32 ;
27
27
const TABLE_FOOTER_HEIGHT = 62 ;
28
28
const TABLE_ROW_HEIGHT = 52 ;
29
- const HIDDEN_COLUMN_PREFIX = '__' ;
30
29
31
30
const theme = createTheme ( {
32
31
typography : {
@@ -160,10 +159,6 @@ export const NeoTableChart = (props: ChartProps) => {
160
159
actionableFields . includes ( key )
161
160
) ;
162
161
} ) ;
163
- const hiddenColumns = Object . assign (
164
- { } ,
165
- ...columns . filter ( ( x ) => x . field . startsWith ( HIDDEN_COLUMN_PREFIX ) ) . map ( ( x ) => ( { [ x . field ] : false } ) )
166
- ) ;
167
162
168
163
const getTransposedRows = ( records ) => {
169
164
// Skip first key
@@ -205,6 +200,9 @@ export const NeoTableChart = (props: ChartProps) => {
205
200
206
201
const pageNames = getPageNumbersAndNamesList ( ) ;
207
202
203
+ const [ columnVisibilityModel , setColumnVisibilityModel ] =
204
+ React . useState < GridColumnVisibilityModel > ( { } ) ;
205
+
208
206
return (
209
207
< ThemeProvider theme = { theme } >
210
208
< div className = { classes . root } style = { { height : '100%' , width : '100%' , position : 'relative' } } >
@@ -255,7 +253,10 @@ export const NeoTableChart = (props: ChartProps) => {
255
253
rowHeight = { tableRowHeight }
256
254
rows = { rows }
257
255
columns = { columns }
258
- columnVisibilityModel = { hiddenColumns }
256
+ columnVisibilityModel = { columnVisibilityModel }
257
+ onColumnVisibilityModelChange = { ( newModel ) =>
258
+ setColumnVisibilityModel ( newModel )
259
+ }
259
260
onCellClick = { ( e ) =>
260
261
performActionOnElement ( e , actionsRules , { ...props , pageNames : pageNames } , 'Click' , 'Table' )
261
262
}
0 commit comments