diff --git a/package.json b/package.json index 0d35f36..3cf6ed0 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "dependencies": { "@rc-component/motion": "^1.0.0", "@rc-component/portal": "^2.1.2", - "@rc-component/util": "^1.3.0", + "@rc-component/util": "^1.7.0", "clsx": "^2.1.1" }, "devDependencies": { diff --git a/src/Preview/index.tsx b/src/Preview/index.tsx index bd4f67c..057608a 100644 --- a/src/Preview/index.tsx +++ b/src/Preview/index.tsx @@ -329,16 +329,16 @@ const Preview: React.FC = props => { // >>>>> Effect: Keyboard const onKeyDown = useEvent((event: KeyboardEvent) => { - if (open) { - const { keyCode } = event; - - if (showLeftOrRightSwitches) { - if (keyCode === KeyCode.LEFT) { - onActive(-1); - } else if (keyCode === KeyCode.RIGHT) { - onActive(1); - } - } + if (!open || !showLeftOrRightSwitches || KeyCode.isEditableTarget(event)) { + return; + } + + if (event.key === 'ArrowLeft') { + onActive(-1); + event.preventDefault(); + } else if (event.key === 'ArrowRight') { + onActive(1); + event.preventDefault(); } }); diff --git a/tests/previewGroup.test.tsx b/tests/previewGroup.test.tsx index 0c847ed..798f360 100644 --- a/tests/previewGroup.test.tsx +++ b/tests/previewGroup.test.tsx @@ -1,4 +1,3 @@ -import KeyCode from '@rc-component/util/lib/KeyCode'; import { act, fireEvent, render } from '@testing-library/react'; import React from 'react'; import Image from '../src'; @@ -171,7 +170,7 @@ describe('PreviewGroup', () => { document.querySelector('.rc-image-preview-switch-prev.rc-image-preview-switch-disabled'), ).toBeTruthy(); - fireEvent.keyDown(window, { keyCode: KeyCode.RIGHT }); + fireEvent.keyDown(window, { key: 'ArrowRight' }); act(() => { jest.runAllTimers(); }); @@ -180,7 +179,7 @@ describe('PreviewGroup', () => { document.querySelector('.rc-image-preview-switch-next.rc-image-preview-switch-disabled'), ).toBeTruthy(); - fireEvent.keyDown(window, { keyCode: KeyCode.LEFT }); + fireEvent.keyDown(window, { key: 'ArrowLeft' }); act(() => { jest.runAllTimers(); });