react-use
Version:
Collection of React Hooks
24 lines (23 loc) • 764 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = require("react");
var usePageLeave = function (onPageLeave, args) {
if (args === void 0) { args = []; }
react_1.useEffect(function () {
if (!onPageLeave) {
return;
}
var handler = function (event) {
event = event ? event : window.event;
var from = event.relatedTarget || event.toElement;
if (!from || from.nodeName === 'HTML') {
onPageLeave();
}
};
document.addEventListener('mouseout', handler);
return function () {
document.removeEventListener('mouseout', handler);
};
}, args);
};
exports.default = usePageLeave;