import { useState, useEffect } from "react"; const hasFocus = () => typeof document !== "undefined" && document.hasFocus(); const useWindowFocus = () => { const [focused, setFocused] = useState(hasFocus); useEffect(() => { setFocused(hasFocus()); const onFocus = () => setFocused(true); const onBlur = () => setFocused(false); window.addEventListener("focus", onFocus); window.addEventListener("blur", onBlur); return () => { window.removeEventListener("focus", onFocus); window.removeEventListener("blur", onBlur); }; }, []); return focused; }; export default useWindowFocus;