UNPKG

@orca-fe/hooks

Version:

React Hooks Collections

37 lines (36 loc) 1.4 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = useStaticClick; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _ahooks = require("ahooks"); var _react = require("react"); var _useMemorizedFn = _interopRequireDefault(require("./useMemorizedFn")); function useStaticClick(_callback) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var mousePointRef = (0, _react.useRef)([0, 0]); var _options$distance = options.distance, distance = _options$distance === void 0 ? 2 : _options$distance, target = options.target; var callback = (0, _useMemorizedFn.default)(_callback); (0, _ahooks.useEventListener)('mousedown', function (e) { mousePointRef.current = [e.clientX, e.clientY]; }, { target: target }); (0, _ahooks.useEventListener)('click', function (e) { if (mousePointRef.current) { var _mousePointRef$curren = (0, _slicedToArray2.default)(mousePointRef.current, 2), x = _mousePointRef$curren[0], y = _mousePointRef$curren[1]; var d = Math.pow(x - e.clientX, 2) + Math.pow(y - e.clientY, 2); if (d <= Math.pow(distance, 2)) { callback(e); } } }, { target: target }); }