UNPKG

@pnp/spfx-controls-react

Version:

Reusable React controls for SharePoint Framework solutions

25 lines 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useOnClickOutside = void 0; /* eslint-disable @typescript-eslint/explicit-function-return-type */ /* eslint-disable @typescript-eslint/no-explicit-any */ var react_1 = require("react"); var useOnClickOutside = function (active, ref, callback) { var handleClickOutside = (0, react_1.useCallback)(function (event) { if (ref.current && !ref.current.contains(event.target) && active) { callback(); } }, [ref, callback, active]); (0, react_1.useEffect)(function () { // Bind the event listener document.addEventListener("mousedown", handleClickOutside); document.addEventListener("wheel", handleClickOutside); return function () { // Unbind the event listener on clean up document.removeEventListener("mousedown", handleClickOutside); document.removeEventListener("wheel", handleClickOutside); }; }, [ref]); }; exports.useOnClickOutside = useOnClickOutside; //# sourceMappingURL=useOnClickOutside.js.map