@ticketmaster/prism
Version:
Live Nation Component library
27 lines • 993 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var React = require("react");
function useClickOutside(ref, onClickOutside) {
function handleClickOutside(event) {
if (ref && ref.current && ref.current.contains(event.target))
return;
onClickOutside();
}
function handleEsc(event) {
if (event.keyCode === 27) {
onClickOutside();
}
}
React.useEffect(function () {
document.addEventListener('mousedown', handleClickOutside);
document.addEventListener('click', handleClickOutside);
document.addEventListener('keydown', handleEsc);
return function () {
document.removeEventListener('mousedown', handleClickOutside);
document.removeEventListener('click', handleClickOutside);
document.removeEventListener('keydown', handleEsc);
};
});
}
exports.default = useClickOutside;
//# sourceMappingURL=useClickOutside.js.map