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 * (1 - event.deltaY / wheelZoomDistanceFactor), true, ...translateCoordinates(event));
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 (!((_a = zoomWrapperRef === null || zoomWrapperRef === void 0 ? void 0 : zoomWrapperRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
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 * (1 + delta / pinchZoomDistanceFactor), true, ...pointers
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "yet-another-react-lightbox",
3
- "version": "3.21.3",
3
+ "version": "3.21.4",
4
4
  "description": "Modern React lightbox component",
5
5
  "author": "Igor Danchenko",
6
6
  "license": "MIT",