react-usehooks-ts
Version:
A collections of typescript supported react Custom hooks
19 lines (18 loc) • 689 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = require("react");
const useOutSideClickHook = (callback, initialValue = null) => {
const elementRef = (0, react_1.useRef)(initialValue);
(0, react_1.useEffect)(() => {
function handler(event) {
var _a;
if (!((_a = elementRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {
callback();
}
}
window.addEventListener('click', handler);
return () => window.removeEventListener('click', handler);
}, [callback]);
return elementRef;
};
exports.default = useOutSideClickHook;
;