UNPKG

@grafana/ui

Version:
41 lines (34 loc) 1.36 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } var React__default = /*#__PURE__*/_interopDefaultCompat(React); "use strict"; function createPointerDistance(distance = 10) { let initial = { x: 0, y: 0 }; const set = (evt) => { initial = getPoint(evt); }; const check = (evt, overrideDistance = distance) => checkDistance(initial, getPoint(evt), overrideDistance); return { set, check }; } function usePointerDistance(distance = 10) { const initial = React__default.default.useRef({ x: 0, y: 0 }); const set = React.useCallback((evt) => { initial.current = getPoint(evt); }, []); const check = React.useCallback( (evt, overrideDistance = distance) => checkDistance(initial.current, getPoint(evt), overrideDistance), [distance] ); return React.useMemo(() => ({ set, check }), [set, check]); } function getPoint(evt) { return { x: evt.clientX, y: evt.clientY }; } function checkDistance(point1, point2, distance) { return Math.hypot(point1.x - point2.x, point1.y - point2.y) > distance; } exports.createPointerDistance = createPointerDistance; exports.usePointerDistance = usePointerDistance; //# sourceMappingURL=usePointerDistance.cjs.map