From c1204097382f023cf3836ba9c2c9e2d240965b03 Mon Sep 17 00:00:00 2001 From: Bilal Shafi Date: Thu, 16 Feb 2023 16:40:45 +0500 Subject: [PATCH] [DataGridPremium] Fix `leafField` to have correct focus value (#7950) --- .../rowGrouping/createGroupingColDef.tsx | 2 ++ .../rowGrouping.DataGridPremium.test.tsx | 30 ++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/packages/grid/x-data-grid-premium/src/hooks/features/rowGrouping/createGroupingColDef.tsx b/packages/grid/x-data-grid-premium/src/hooks/features/rowGrouping/createGroupingColDef.tsx index 40f3457d272f..d5a771204862 100644 --- a/packages/grid/x-data-grid-premium/src/hooks/features/rowGrouping/createGroupingColDef.tsx +++ b/packages/grid/x-data-grid-premium/src/hooks/features/rowGrouping/createGroupingColDef.tsx @@ -178,6 +178,7 @@ export const createGroupingColDefForOneGroupingCriteria = ({ const leafParams: GridRenderCellParams = { ...params.api.getCellParams(params.id, leafField!), api: params.api, + hasFocus: params.hasFocus, }; if (leafColDef.renderCell) { return leafColDef.renderCell(leafParams); @@ -308,6 +309,7 @@ export const createGroupingColDefForAllGroupingCriteria = ({ const leafParams: GridRenderCellParams = { ...params.api.getCellParams(params.id, leafField!), api: params.api, + hasFocus: params.hasFocus, }; if (leafColDef.renderCell) { return leafColDef.renderCell(leafParams); diff --git a/packages/grid/x-data-grid-premium/src/tests/rowGrouping.DataGridPremium.test.tsx b/packages/grid/x-data-grid-premium/src/tests/rowGrouping.DataGridPremium.test.tsx index e70aa00a9244..7872e823dec0 100644 --- a/packages/grid/x-data-grid-premium/src/tests/rowGrouping.DataGridPremium.test.tsx +++ b/packages/grid/x-data-grid-premium/src/tests/rowGrouping.DataGridPremium.test.tsx @@ -1,10 +1,11 @@ import * as React from 'react'; // @ts-ignore Remove once the test utils are typed -import { createRenderer, fireEvent, screen, act } from '@mui/monorepo/test/utils'; +import { createRenderer, fireEvent, screen, act, userEvent } from '@mui/monorepo/test/utils'; import { getColumnHeaderCell, getColumnHeadersTextContent, getColumnValues, + getCell, } from 'test/utils/helperFn'; import { expect } from 'chai'; import { @@ -814,6 +815,33 @@ describe(' - Row Grouping', () => { 'Custom leaf', ]); }); + + // See https://github.com/mui/mui-x/issues/7949 + it('should correctly pass `hasFocus` to `renderCell` defined on the leafColDef', () => { + const renderIdCell = spy((params) => `Focused: ${params.hasFocus}`); + + render( + , + ); + + userEvent.mousePress(getCell(1, 0)); + expect(renderIdCell.lastCall.firstArg.field).to.equal('id'); + expect(getCell(1, 0)).to.have.text('Focused: true'); + }); }); describe('prop: groupColDef.headerName', () => {