UNPKG

@tldraw/editor

Version:

tldraw infinite canvas SDK (editor).

26 lines (22 loc) 734 B
// Reasonable defaults const MAX_ZOOM_STEP = 10 const IS_DARWIN = /Mac|iPod|iPhone|iPad/.test( // eslint-disable-next-line @typescript-eslint/no-deprecated typeof window === 'undefined' ? 'node' : window.navigator.platform ) // Adapted from https://stackoverflow.com/a/13650579 /** @internal */ export function normalizeWheel(event: WheelEvent | React.WheelEvent<HTMLElement>) { let { deltaY, deltaX } = event let deltaZ = 0 // wheeling if (event.ctrlKey || event.altKey || event.metaKey) { deltaZ = (Math.abs(deltaY) > MAX_ZOOM_STEP ? MAX_ZOOM_STEP * Math.sign(deltaY) : deltaY) / 100 } else { if (event.shiftKey && !IS_DARWIN) { deltaX = deltaY deltaY = 0 } } return { x: -deltaX, y: -deltaY, z: -deltaZ } }