onTouchMove()

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);
    }
  }