From e4d716112228811f0e00a537211b1010388188b5 Mon Sep 17 00:00:00 2001 From: Devon Govett Date: Wed, 21 May 2025 15:46:20 -0700 Subject: [PATCH] fix: Do not move backward through DateField segments when pressing Enter --- .../datepicker/src/useDatePickerGroup.ts | 2 +- .../test/DateField.test.js | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/@react-aria/datepicker/src/useDatePickerGroup.ts b/packages/@react-aria/datepicker/src/useDatePickerGroup.ts index b5060aa86c3..862ba7e08a0 100644 --- a/packages/@react-aria/datepicker/src/useDatePickerGroup.ts +++ b/packages/@react-aria/datepicker/src/useDatePickerGroup.ts @@ -110,7 +110,7 @@ export function useDatePickerGroup(state: DatePickerState | DateRangePickerState } }, onPress(e) { - if (e.pointerType !== 'mouse') { + if (e.pointerType === 'touch' || e.pointerType === 'pen') { focusLast(); } } diff --git a/packages/react-aria-components/test/DateField.test.js b/packages/react-aria-components/test/DateField.test.js index 5bb55d52e93..f367310f37c 100644 --- a/packages/react-aria-components/test/DateField.test.js +++ b/packages/react-aria-components/test/DateField.test.js @@ -338,4 +338,21 @@ describe('DateField', () => { await user.keyboard('{backspace}'); expect(document.activeElement).toBe(segments[0]); }); + + it('should do nothing when pressing enter', async () => { + let {getAllByRole} = render( + + + + {segment => } + + + ); + + let segments = getAllByRole('spinbutton'); + await user.click(segments[2]); + expect(segments[2]).toHaveFocus(); + await user.keyboard('{Enter}'); + expect(segments[2]).toHaveFocus(); + }); });