mirror of
https://github.com/streamich/react-use.git
synced 2026-01-18 14:06:52 +00:00
fix: 🐛 make sure all paths in usePageLeave return
This commit is contained in:
parent
33ac91b775
commit
6655092cae
@ -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);
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user