UNPKG

@ozen-ui/kit

Version:

React component library

19 lines (18 loc) 992 B
import { useEventListener } from '../useEventListener'; import { useMutableRef } from '../useMutableRef'; /** Хук отслеживающий клики за пределами dom-элементов указанных в `refs` */ export 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 = useMutableRef(refs); 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, }); }