reactuals
Version:
A useful package providing a collection of 50+ React hooks and utilities to simplify React development.
20 lines (19 loc) • 573 B
JavaScript
import { useEffect } from "react";
/**
* Detects when the user's mouse leaves the page (e.g. for exit intent).
*
* @param onExit - Callback when page is left
*
* Example:
* usePageLeave(() => console.log("User is leaving!"));
*/
export function usePageExit(onExit) {
useEffect(() => {
const handleMouseLeave = (e) => {
if (e.clientY <= 0)
onExit();
};
document.addEventListener("mouseout", handleMouseLeave);
return () => document.removeEventListener("mouseout", handleMouseLeave);
}, [onExit]);
}