All files / src/components/ui/hooks use-window-focus.tsx

0% Statements 0/16
100% Branches 0/0
0% Functions 0/5
0% Lines 0/14

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26                                                   
import { useState, useEffect } from "react";
 
const useWindowFocus = () => {
  const [focused, setFocused] = useState(false);
 
  useEffect(() => {
    // First render
    setFocused(document.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;