Files
NapCatQQ/.pnpm-store/v3/files/74/8835fb6c16891f0d61d5a94af771a657e4185b2f50042325ccc4018276ec64b944603a5e3c023ce17e86a9fdd742b11704571646253467a7636bb7373fd2cf
TanTan e311ca3275
Build NapCat Artifacts / Windows Loader Test (push) Canceled after 0s
Build NapCat Artifacts / Type Check & Test (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Framework (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Shell (push) Canceled after 0s
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

39 lines
1.5 KiB
Plaintext

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = useClickAway;
var _useLatest = _interopRequireDefault(require("../useLatest"));
var _domTarget = require("../utils/domTarget");
var _getDocumentOrShadow = _interopRequireDefault(require("../utils/getDocumentOrShadow"));
var _useEffectWithTarget = _interopRequireDefault(require("../utils/useEffectWithTarget"));
function useClickAway(onClickAway, target, eventName) {
if (eventName === void 0) {
eventName = 'click';
}
var onClickAwayRef = (0, _useLatest["default"])(onClickAway);
(0, _useEffectWithTarget["default"])(function () {
var handler = function handler(event) {
var targets = Array.isArray(target) ? target : [target];
if (targets.some(function (item) {
var targetElement = (0, _domTarget.getTargetElement)(item);
return !targetElement || targetElement.contains(event.target);
})) {
return;
}
onClickAwayRef.current(event);
};
var documentOrShadow = (0, _getDocumentOrShadow["default"])(target);
var eventNames = Array.isArray(eventName) ? eventName : [eventName];
eventNames.forEach(function (event) {
return documentOrShadow.addEventListener(event, handler);
});
return function () {
eventNames.forEach(function (event) {
return documentOrShadow.removeEventListener(event, handler);
});
};
}, Array.isArray(eventName) ? eventName : [eventName], target);
}