From aefc4ab423c0c836beb0da9f75e1dbf35a0d1d0b Mon Sep 17 00:00:00 2001 From: Rajat Date: Fri, 10 Jan 2025 18:04:25 +0530 Subject: [PATCH 1/3] fix focus --- .../keyboardNavigation/useGridKeyboardNavigation.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/x-data-grid/src/hooks/features/keyboardNavigation/useGridKeyboardNavigation.ts b/packages/x-data-grid/src/hooks/features/keyboardNavigation/useGridKeyboardNavigation.ts index 45cb7e7df94c1..2965f6d16e9ce 100644 --- a/packages/x-data-grid/src/hooks/features/keyboardNavigation/useGridKeyboardNavigation.ts +++ b/packages/x-data-grid/src/hooks/features/keyboardNavigation/useGridKeyboardNavigation.ts @@ -176,13 +176,13 @@ export const useGridKeyboardNavigation = ( switch (event.key) { case 'ArrowDown': { - if (firstRowIndexInPage !== null) { - if (headerFilteringEnabled) { - goToHeaderFilter(colIndexBefore, event); - } else { + if (headerFilteringEnabled) { + goToHeaderFilter(colIndexBefore, event); + } else { + if (firstRowIndexInPage !== null) goToCell(colIndexBefore, getRowIdFromIndex(firstRowIndexInPage)); - } } + break; } From 03422985d01bd98cb5ed4ed1653255a3ce790a10 Mon Sep 17 00:00:00 2001 From: Rajat Date: Sat, 11 Jan 2025 12:40:59 +0530 Subject: [PATCH 2/3] lint --- .../features/keyboardNavigation/useGridKeyboardNavigation.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/x-data-grid/src/hooks/features/keyboardNavigation/useGridKeyboardNavigation.ts b/packages/x-data-grid/src/hooks/features/keyboardNavigation/useGridKeyboardNavigation.ts index 2965f6d16e9ce..179bcc0cd405f 100644 --- a/packages/x-data-grid/src/hooks/features/keyboardNavigation/useGridKeyboardNavigation.ts +++ b/packages/x-data-grid/src/hooks/features/keyboardNavigation/useGridKeyboardNavigation.ts @@ -178,9 +178,8 @@ export const useGridKeyboardNavigation = ( case 'ArrowDown': { if (headerFilteringEnabled) { goToHeaderFilter(colIndexBefore, event); - } else { - if (firstRowIndexInPage !== null) - goToCell(colIndexBefore, getRowIdFromIndex(firstRowIndexInPage)); + } else if (firstRowIndexInPage !== null) { + goToCell(colIndexBefore, getRowIdFromIndex(firstRowIndexInPage)); } break; From e9fc10020f6319e5108ef7c219be88d8144b6177 Mon Sep 17 00:00:00 2001 From: Bilal Shafi Date: Tue, 28 Jan 2025 15:04:30 +0500 Subject: [PATCH 3/3] Add test --- .../src/tests/filtering.DataGridPro.test.tsx | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx b/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx index 6a45a97d1977b..8ec4844de6909 100644 --- a/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx +++ b/packages/x-data-grid-pro/src/tests/filtering.DataGridPro.test.tsx @@ -1262,6 +1262,33 @@ describe(' - Filter', () => { await waitFor(() => expect(getColumnValues(0)).to.deep.equal(['100', '1,000'])); expect(changeSpy.lastCall.args[0].items[0].value).to.equal(10); // 0.1e2 }); + + it('should allow to navigate to the header filter cell when there are no rows', async () => { + clock.restore(); + const { user } = render( + , + ); + const headerCell = getColumnHeaderCell(0, 0); + const filterCell = getColumnHeaderCell(0, 1); + await user.click(headerCell); + await user.keyboard('{ArrowDown}'); + expect(filterCell).toHaveFocus(); + }); }); describe('Read-only filters', () => {