UNPKG

@ozen-ui/kit

Version:

React component library

22 lines (21 loc) 1.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useClickOutside = useClickOutside; var useEventListener_1 = require("../useEventListener"); var useMutableRef_1 = require("../useMutableRef"); /** Хук отслеживающий клики за пределами dom-элементов указанных в `refs` */ function useClickOutside(_a) { var refs = _a.refs, handler = _a.handler, options = _a.options, _b = _a.active, active = _b === void 0 ? true : _b, _c = _a.eventName, eventName = _c === void 0 ? 'mousedown' : _c; var savedRefs = (0, useMutableRef_1.useMutableRef)(refs); (0, useEventListener_1.useEventListener)({ eventName: eventName, handler: function (event) { var _a; var isClickOutsideRefs = (_a = savedRefs.current) === null || _a === void 0 ? void 0 : _a.every(function (ref) { return ref.current && !event.composedPath().includes(ref.current); }); if (isClickOutsideRefs) handler === null || handler === void 0 ? void 0 : handler(event); }, active: active, options: options, }); }