Skip to content

Commit 2e9b936

Browse files
authored
fix: prevent double effect on image modal wheel event (#4522)
- escape key closes the modal - zooming is a bit smoother
1 parent c0643ff commit 2e9b936

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

web/src/components/PreviewImageDialog.tsx

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { generateDialog } from "./Dialog";
55

66
const MIN_SCALE = 0.5;
77
const MAX_SCALE = 5;
8-
const SCALE_UNIT = 0.25;
8+
const SCALE_UNIT = 0.2;
99

1010
interface Props extends DialogProps {
1111
imgUrls: string[];
@@ -95,14 +95,22 @@ const PreviewImageDialog: React.FC<Props> = ({ destroy, imgUrls, initialIndex }:
9595
};
9696

9797
const handleImageContainerKeyDown = (event: KeyboardEvent) => {
98-
if (event.key == "ArrowLeft") {
99-
showPrevImg();
100-
} else if (event.key == "ArrowRight") {
101-
showNextImg();
98+
switch (event.key) {
99+
case "ArrowLeft":
100+
showPrevImg();
101+
break;
102+
case "ArrowRight":
103+
showNextImg();
104+
break;
105+
case "Escape":
106+
destroyAndResetViewport();
107+
break;
108+
default:
102109
}
103110
};
104111

105112
const handleImgContainerScroll = (event: React.WheelEvent) => {
113+
event.stopPropagation();
106114
const offsetX = event.nativeEvent.offsetX;
107115
const offsetY = event.nativeEvent.offsetY;
108116
const sign = event.deltaY < 0 ? 1 : -1;

0 commit comments

Comments
 (0)