All files / packages/tools/src/eventDispatchers/mouseEventHandlers mouseDrag.ts

100% Statements 7/7
100% Branches 6/6
100% Functions 1/1
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26                      93x 80x     13x     13x 13x 12x     1x    
import getActiveToolForMouseEvent from '../shared/getActiveToolForMouseEvent';
import { state } from '../../store';
import { MouseDragEventType } from '../../types/EventTypes';
 
/**
 * mouseDrag - Event handler for mouse drag events. Fires the `mouseDragCallback`
 * function on active tools.
 *
 * @param evt - The normalized mouseDown event.
 */
export default function mouseDrag(evt: MouseDragEventType) {
  if (state.isInteractingWithTool) {
    return;
  }
 
  const activeTool = getActiveToolForMouseEvent(evt);
 
  const noFoundToolOrDoesNotHaveMouseDragCallback =
    !activeTool || typeof activeTool.mouseDragCallback !== 'function';
  if (noFoundToolOrDoesNotHaveMouseDragCallback) {
    return;
  }
 
  activeTool.mouseDragCallback(evt);
}