From 2624ec46aa2e909c1b8cb00b6a8340e22d81ce43 Mon Sep 17 00:00:00 2001 From: Altin Selimi Date: Fri, 1 Aug 2025 15:19:26 +0200 Subject: [PATCH 1/2] feat: add auto as usePinchKey to automatically pinch with wheel --- packages/infinite-viewer/src/InfiniteViewerManager.tsx | 2 +- packages/infinite-viewer/src/types.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/infinite-viewer/src/InfiniteViewerManager.tsx b/packages/infinite-viewer/src/InfiniteViewerManager.tsx index a19d42f..7c66bc9 100644 --- a/packages/infinite-viewer/src/InfiniteViewerManager.tsx +++ b/packages/infinite-viewer/src/InfiniteViewerManager.tsx @@ -863,7 +863,7 @@ class InfiniteViewer extends EventEmitter { const pinchDirection = options.pinchDirection; const maxPinchWheel = options.maxPinchWheel || Infinity; - const isKeydown = e[`${this.wheelPinchKey}Key`] || e.ctrlKey; + const isKeydown = this.wheelPinchKey === 'auto' ? true : e[`${this.wheelPinchKey}Key`] || e.ctrlKey; if (options.useWheelPinch && isKeydown) { let deltaY = e.deltaY; diff --git a/packages/infinite-viewer/src/types.ts b/packages/infinite-viewer/src/types.ts index 21d852d..83326c0 100644 --- a/packages/infinite-viewer/src/types.ts +++ b/packages/infinite-viewer/src/types.ts @@ -87,7 +87,7 @@ export interface InfiniteViewerOptions { * Key to use wheel pinch * @default "ctrl" */ - wheelPinchKey: "ctrl" | "meta" | "alt" | "shift", + wheelPinchKey: "ctrl" | "meta" | "alt" | "shift" | "auto"; /** * Whether to use wheel scroll. You can scroll smoothly by using the wheel. * @default IS_SAFARI From e8e72b88e357409f0b68478d350f0cb987d2c9e2 Mon Sep 17 00:00:00 2001 From: Altin Selimi Date: Fri, 1 Aug 2025 15:27:17 +0200 Subject: [PATCH 2/2] chore: change implementation to use NULL instead --- packages/infinite-viewer/src/InfiniteViewerManager.tsx | 2 +- packages/infinite-viewer/src/types.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/infinite-viewer/src/InfiniteViewerManager.tsx b/packages/infinite-viewer/src/InfiniteViewerManager.tsx index 7c66bc9..11172e8 100644 --- a/packages/infinite-viewer/src/InfiniteViewerManager.tsx +++ b/packages/infinite-viewer/src/InfiniteViewerManager.tsx @@ -863,7 +863,7 @@ class InfiniteViewer extends EventEmitter { const pinchDirection = options.pinchDirection; const maxPinchWheel = options.maxPinchWheel || Infinity; - const isKeydown = this.wheelPinchKey === 'auto' ? true : e[`${this.wheelPinchKey}Key`] || e.ctrlKey; + const isKeydown = this.wheelPinchKey === null ? true : e[`${this.wheelPinchKey}Key`] || e.ctrlKey; if (options.useWheelPinch && isKeydown) { let deltaY = e.deltaY; diff --git a/packages/infinite-viewer/src/types.ts b/packages/infinite-viewer/src/types.ts index 83326c0..8e547d8 100644 --- a/packages/infinite-viewer/src/types.ts +++ b/packages/infinite-viewer/src/types.ts @@ -84,10 +84,10 @@ export interface InfiniteViewerOptions { */ useWheelPinch: boolean; /** - * Key to use wheel pinch + * Key to use wheel pinch. Null if you want wheel pinch without any key. * @default "ctrl" */ - wheelPinchKey: "ctrl" | "meta" | "alt" | "shift" | "auto"; + wheelPinchKey: "ctrl" | "meta" | "alt" | "shift" | null, /** * Whether to use wheel scroll. You can scroll smoothly by using the wheel. * @default IS_SAFARI