yet-another-react-lightbox 3.21.3 → 3.21.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -115,6 +115,9 @@ function useZoomImageRect(slideRect, imageDimensions) {
|
|
|
115
115
|
function distance(pointerA, pointerB) {
|
|
116
116
|
return ((pointerA.clientX - pointerB.clientX) ** 2 + (pointerA.clientY - pointerB.clientY) ** 2) ** 0.5;
|
|
117
117
|
}
|
|
118
|
+
function scaleZoom(value, delta, factor = 100, clamp = 2) {
|
|
119
|
+
return value * Math.min(1 + Math.abs(delta / factor), clamp) ** Math.sign(delta);
|
|
120
|
+
}
|
|
118
121
|
function useZoomSensors(zoom, maxZoom, disabled, changeZoom, changeOffsets, zoomWrapperRef) {
|
|
119
122
|
const activePointers = React.useRef([]);
|
|
120
123
|
const lastPointerDown = React.useRef(0);
|
|
@@ -174,7 +177,7 @@ function useZoomSensors(zoom, maxZoom, disabled, changeZoom, changeOffsets, zoom
|
|
|
174
177
|
if (event.ctrlKey || scrollToZoom) {
|
|
175
178
|
if (Math.abs(event.deltaY) > Math.abs(event.deltaX)) {
|
|
176
179
|
event.stopPropagation();
|
|
177
|
-
changeZoom(zoom
|
|
180
|
+
changeZoom(scaleZoom(zoom, -event.deltaY, wheelZoomDistanceFactor), true, ...translateCoordinates(event));
|
|
178
181
|
return;
|
|
179
182
|
}
|
|
180
183
|
}
|
|
@@ -197,7 +200,8 @@ function useZoomSensors(zoom, maxZoom, disabled, changeZoom, changeOffsets, zoom
|
|
|
197
200
|
const onPointerDown = useEventCallback((event) => {
|
|
198
201
|
var _a;
|
|
199
202
|
const pointers = activePointers.current;
|
|
200
|
-
if (
|
|
203
|
+
if ((event.pointerType === "mouse" && event.buttons > 1) ||
|
|
204
|
+
!((_a = zoomWrapperRef === null || zoomWrapperRef === void 0 ? void 0 : zoomWrapperRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
|
|
201
205
|
return;
|
|
202
206
|
}
|
|
203
207
|
if (zoom > 1) {
|
|
@@ -226,7 +230,7 @@ function useZoomSensors(zoom, maxZoom, disabled, changeZoom, changeOffsets, zoom
|
|
|
226
230
|
const currentDistance = distance(pointers[0], pointers[1]);
|
|
227
231
|
const delta = currentDistance - pinchZoomDistance.current;
|
|
228
232
|
if (Math.abs(delta) > 0) {
|
|
229
|
-
changeZoom(zoom
|
|
233
|
+
changeZoom(scaleZoom(zoom, delta, pinchZoomDistanceFactor), true, ...pointers
|
|
230
234
|
.map((x) => translateCoordinates(x))
|
|
231
235
|
.reduce((acc, coordinate) => coordinate.map((x, i) => acc[i] + x / 2)));
|
|
232
236
|
pinchZoomDistance.current = currentDistance;
|