in src/components/ZoomableSVGGroup.js [180:205]
onTouchMove(event) {
event.preventDefault();
if (event.touches.length >= 2) {
const finger1 = event.touches[0];
const finger2 = event.touches[1];
const pinchLength = ZoomableSVGGroup.getPinchZoomLength(finger1, finger2);
const prevPinchLength = this.state.pinchLength;
let delta = 0;
if (pinchLength < prevPinchLength) {
delta = 1;
} else if (pinchLength > prevPinchLength) {
delta = -1;
}
// use the midpoint between the fingers as the zoom origin
const { clientX, clientY } = ZoomableSVGGroup.getTouchClientValues(event);
const scaleMultiplier = this.getScaleMultiplier(delta);
this.zoomTo(clientX, clientY, scaleMultiplier, event);
this.setState({ pinchLength });
} else {
this.panBy(event.touches[0].clientX, event.touches[0].clientY);
}
}