fix(panzoom): always call onMoveEnd when onMoveStart was called #5429

This commit is contained in:
moklick
2025-10-14 12:14:13 +02:00
parent f55a9b2361
commit 31dd8efca5
2 changed files with 3 additions and 8 deletions

View File

@@ -12,7 +12,7 @@ import {
type OnDraggingChange,
type OnTransformChange,
} from '../types';
import { isRightClickPan, isWrappedWithClass, transformToViewport, viewChanged, wheelDelta } from './utils';
import { isRightClickPan, isWrappedWithClass, transformToViewport, wheelDelta } from './utils';
import { isMacOs } from '../utils';
import { ZoomPanValues } from './XYPanZoom';
@@ -128,9 +128,7 @@ export function createPanOnScrollHandler({
zoomPanValues.isPanScrolling = true;
onPanZoomStart?.(event, nextViewport);
}
if (zoomPanValues.isPanScrolling) {
} else {
onPanZoom?.(event, nextViewport);
zoomPanValues.panScrollTimeout = setTimeout(() => {
@@ -236,7 +234,7 @@ export function createPanZoomEndHandler({
onDraggingChange(false);
if (onPanZoomEnd && viewChanged(zoomPanValues.prevViewport, event.transform)) {
if (onPanZoomEnd) {
const viewport = transformToViewport(event.transform);
zoomPanValues.prevViewport = viewport;

View File

@@ -6,9 +6,6 @@ import { transition } from 'd3-transition';
import { type D3SelectionInstance, type Viewport } from '../types';
import { isMacOs } from '../utils';
export const viewChanged = (prevViewport: Viewport, eventViewport: any): boolean =>
prevViewport.x !== eventViewport.x || prevViewport.y !== eventViewport.y || prevViewport.zoom !== eventViewport.k;
export const transformToViewport = (transform: ZoomTransform): Viewport => ({
x: transform.x,
y: transform.y,