From 993ee7e763dca54b407cd7be9ceb900dc4d9922a Mon Sep 17 00:00:00 2001 From: Eric Lavesson Date: Wed, 19 Feb 2025 20:24:57 +0100 Subject: [PATCH] Make pan/zoom simultaneous (#489) --- .changeset/young-dryers-invite.md | 5 +++++ lib/src/cartesian/CartesianChart.tsx | 13 +++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 .changeset/young-dryers-invite.md diff --git a/.changeset/young-dryers-invite.md b/.changeset/young-dryers-invite.md new file mode 100644 index 00000000..220ce7e4 --- /dev/null +++ b/.changeset/young-dryers-invite.md @@ -0,0 +1,5 @@ +--- +"victory-native": patch +--- + +Make it possible to zoom/pan simultaneously diff --git a/lib/src/cartesian/CartesianChart.tsx b/lib/src/cartesian/CartesianChart.tsx index 0eb220a4..050a06a9 100644 --- a/lib/src/cartesian/CartesianChart.tsx +++ b/lib/src/cartesian/CartesianChart.tsx @@ -658,18 +658,23 @@ function CartesianChartContent< let composed = customGestures ?? Gesture.Race(); if (transformState) { + let gestures = Gesture.Simultaneous(); + if (transformConfig?.pinch?.enabled ?? true) { - composed = Gesture.Race( - composed, + gestures = Gesture.Simultaneous( + gestures, pinchTransformGesture(transformState, transformConfig?.pinch), ); } + if (transformConfig?.pan?.enabled ?? true) { - composed = Gesture.Race( - composed, + gestures = Gesture.Simultaneous( + gestures, panTransformGesture(transformState, transformConfig?.pan), ); } + + composed = Gesture.Race(composed, Gesture.Simultaneous(gestures)); } if (chartPressState) { composed = Gesture.Race(composed, panGesture);