UNPKG

ahooks-v2

Version:
42 lines (31 loc) 1.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); var dom_1 = require("../utils/dom"); // 鼠标点击事件,click 不会监听右键 var defaultEvent = 'click'; function useClickAway(onClickAway, target, eventName) { if (eventName === void 0) { eventName = defaultEvent; } var onClickAwayRef = react_1.useRef(onClickAway); onClickAwayRef.current = onClickAway; react_1.useEffect(function () { var handler = function handler(event) { var targets = Array.isArray(target) ? target : [target]; if (targets.some(function (targetItem) { var targetElement = dom_1.getTargetElement(targetItem); return !targetElement || (targetElement === null || targetElement === void 0 ? void 0 : targetElement.contains(event.target)); })) { return; } onClickAwayRef.current(event); }; document.addEventListener(eventName, handler); return function () { document.removeEventListener(eventName, handler); }; }, [target, eventName]); } exports["default"] = useClickAway;