fix: 🐛 make sure all paths in usePageLeave return

This commit is contained in:
streamich 2019-03-27 19:21:13 +01:00
parent 33ac91b775
commit 6655092cae

View File

@ -2,18 +2,18 @@ import {useEffect} from 'react';
const usePageLeave = (onPageLeave, args = []) => {
useEffect(() => {
if (onPageLeave) {
const handler = (event) => {
event = event ? event : (window.event as any);
const from = event.relatedTarget || event.toElement;
if (!from || (from as any).nodeName === 'HTML') onPageLeave();
};
if (!onPageLeave) return;
document.addEventListener('mouseout', handler);
return () => {
document.removeEventListener('mouseout', handler);
};
}
const handler = (event) => {
event = event ? event : (window.event as any);
const from = event.relatedTarget || event.toElement;
if (!from || (from as any).nodeName === 'HTML') onPageLeave();
};
document.addEventListener('mouseout', handler);
return () => {
document.removeEventListener('mouseout', handler);
};
}, args);
};