From bce57f9572b07de9ae3d2f5328186e82213393bf Mon Sep 17 00:00:00 2001 From: Alexandre Fauquette <45398769+alexfauquette@users.noreply.github.com> Date: Thu, 6 Oct 2022 17:11:59 +0200 Subject: [PATCH] [DataGrid] Fix error when using columnGrouping with all columns hidden (#6405) --- .../columnHeaders/useGridColumnHeaders.tsx | 2 +- .../tests/columnsGrouping.DataGrid.test.tsx | 27 ++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/packages/grid/x-data-grid/src/hooks/features/columnHeaders/useGridColumnHeaders.tsx b/packages/grid/x-data-grid/src/hooks/features/columnHeaders/useGridColumnHeaders.tsx index e08ce80f4c08..df77804372b5 100644 --- a/packages/grid/x-data-grid/src/hooks/features/columnHeaders/useGridColumnHeaders.tsx +++ b/packages/grid/x-data-grid/src/hooks/features/columnHeaders/useGridColumnHeaders.tsx @@ -330,7 +330,7 @@ export const useGridColumnHeaders = (props: UseGridColumnHeadersProps) => { } const columnsToRender = getColumnsToRender(params); - if (columnsToRender == null) { + if (columnsToRender == null || columnsToRender.renderedColumns.length === 0) { return null; } diff --git a/packages/grid/x-data-grid/src/tests/columnsGrouping.DataGrid.test.tsx b/packages/grid/x-data-grid/src/tests/columnsGrouping.DataGrid.test.tsx index 9c6e896e9fb2..cfbb9217ea7e 100644 --- a/packages/grid/x-data-grid/src/tests/columnsGrouping.DataGrid.test.tsx +++ b/packages/grid/x-data-grid/src/tests/columnsGrouping.DataGrid.test.tsx @@ -50,7 +50,7 @@ describe(' - Column grouping', () => { expect(screen.queryAllByRole('row')).to.have.length(3); }); - it('should add header rows to match max depth oc column groups', () => { + it('should add header rows to match max depth of column groups', () => { render( - Column grouping', () => { Array.from(row2Headers).map((header) => header.getAttribute('aria-colindex')), ).to.deep.equal(['1', '3']); }); + + it('should not throw warning when all columns are hidden', () => { + const { setProps } = render( + , + ); + + setProps({ + columnVisibilityModel: { + col1: false, + col2: false, + col3: false, + }, + }); + }); }); // TODO: remove the skip. I failed to test if an error is thrown