From c3cf44eda8d73d8b7c000da967d7626a273aefff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=8C=E8=B4=A7=E6=9C=BA=E5=99=A8=E4=BA=BA?= Date: Fri, 21 Mar 2025 02:51:49 +0800 Subject: [PATCH] fix: right click should not trigger drag --- src/hooks/useScrollDrag.ts | 2 +- tests/scroll.test.js | 26 ++++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/hooks/useScrollDrag.ts b/src/hooks/useScrollDrag.ts index fb3829f8..36dfaab1 100644 --- a/src/hooks/useScrollDrag.ts +++ b/src/hooks/useScrollDrag.ts @@ -40,7 +40,7 @@ export default function useScrollDrag( const onMouseDown = (e: MouseEvent) => { // Skip if element set draggable - if ((e.target as HTMLElement).draggable) { + if ((e.target as HTMLElement).draggable || e.button !== 0) { return; } // Skip if nest List has handled this event diff --git a/tests/scroll.test.js b/tests/scroll.test.js index 410a59e6..1863d41d 100644 --- a/tests/scroll.test.js +++ b/tests/scroll.test.js @@ -577,8 +577,10 @@ describe('List.Scroll', () => { }); describe('mouse down drag', () => { - function dragDown(container, mouseY) { - fireEvent.mouseDown(container.querySelector('li')); + function dragDown(container, mouseY, button = 0) { + fireEvent.mouseDown(container.querySelector('li'), { + button, + }); let moveEvent = createEvent.mouseMove(container.querySelector('li')); moveEvent.pageY = mouseY; @@ -621,6 +623,26 @@ describe('List.Scroll', () => { expect(getScrollTop(container)).toBe(0); }); + it('right click should not move', () => { + const onScroll = jest.fn(); + const { container } = render( + + {({ id }) =>
  • {id}
  • } +
    , + ); + + // Drag down + dragDown(container, 100, 2); + expect(getScrollTop(container)).toBe(0); + }); + it('can not move when item add draggable', () => { const onScroll = jest.fn(); const { container } = render(