Skip to content

Commit c2cd9e9

Browse files
committed
Add additional aria attributes to the rows in a grid that has row grouping enabled
1 parent b00902d commit c2cd9e9

File tree

4 files changed

+20
-4
lines changed

4 files changed

+20
-4
lines changed

packages/x-data-grid-premium/src/DataGridPremium/DataGridPremium.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import {
1515
propValidatorsDataGridPro,
1616
PropValidator,
1717
validateProps,
18-
useGridRowAriaAttributes,
1918
} from '@mui/x-data-grid-pro/internals';
2019
import { useDataGridPremiumComponent } from './useDataGridPremiumComponent';
2120
import {
@@ -24,6 +23,7 @@ import {
2423
} from '../models/dataGridPremiumProps';
2524
import { useDataGridPremiumProps } from './useDataGridPremiumProps';
2625
import { getReleaseInfo } from '../utils/releaseInfo';
26+
import { useGridRowAriaAttributes } from '../hooks/features/rows/useGridRowAriaAttributes';
2727

2828
export type { GridPremiumSlotsComponent as GridSlots } from '../models';
2929

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from './useGridRowAriaAttributes';
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import {
2+
useGridRowAriaAttributes as useGridRowAriaAttributesPro,
3+
useGridSelector,
4+
} from '@mui/x-data-grid-pro/internals';
5+
import { useGridPrivateApiContext } from '../../utils/useGridPrivateApiContext';
6+
import { gridRowGroupingModelSelector } from '../rowGrouping/gridRowGroupingSelector';
7+
8+
export const useGridRowAriaAttributes = () => {
9+
const apiRef = useGridPrivateApiContext();
10+
const gridRowGroupingModel = useGridSelector(apiRef, gridRowGroupingModelSelector);
11+
return useGridRowAriaAttributesPro(gridRowGroupingModel.length > 0);
12+
};

packages/x-data-grid-pro/src/hooks/features/rows/useGridRowAriaAttributes.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { useGridRowAriaAttributes as useGridRowAriaAttributesCommunity } from '@
1111
import { useGridPrivateApiContext } from '../../utils/useGridPrivateApiContext';
1212
import { useGridRootProps } from '../../utils/useGridRootProps';
1313

14-
export const useGridRowAriaAttributes = () => {
14+
export const useGridRowAriaAttributes = (addTreeDataAttributes?: boolean) => {
1515
const apiRef = useGridPrivateApiContext();
1616
const props = useGridRootProps();
1717
const getRowAriaAttributesCommunity = useGridRowAriaAttributesCommunity();
@@ -26,12 +26,15 @@ export const useGridRowAriaAttributes = () => {
2626
gridExpandedSortedRowIdsLookupSelector,
2727
);
2828

29+
const addAttributes =
30+
addTreeDataAttributes !== undefined ? addTreeDataAttributes : props.treeData === true;
31+
2932
return React.useCallback(
3033
(rowId: GridRowId, index: number) => {
3134
const rowNode = apiRef.current.getRowNode(rowId);
3235
const ariaAttributes = getRowAriaAttributesCommunity(rowId, index);
3336

34-
if (rowNode === null || props.treeData !== true) {
37+
if (!addAttributes || rowNode === null) {
3538
return ariaAttributes;
3639
}
3740

@@ -56,7 +59,7 @@ export const useGridRowAriaAttributes = () => {
5659
},
5760
[
5861
apiRef,
59-
props.treeData,
62+
addAttributes,
6063
filteredTopLevelRowCount,
6164
filteredChildrenCountLookup,
6265
sortedVisibleRowPositionsLookup,

0 commit comments

Comments
 (0)