25 lines
611 B
TypeScript
25 lines
611 B
TypeScript
import { useEffect, useState } from "react";
|
|
|
|
export function useWindowFocus() {
|
|
const [isFocused, setIsFocused] = useState<boolean>(document.hasFocus());
|
|
|
|
function handleFocus() {
|
|
setIsFocused(true);
|
|
}
|
|
|
|
function handleBlur() {
|
|
setIsFocused(false);
|
|
}
|
|
|
|
useEffect(() => {
|
|
window.addEventListener('focus', handleFocus);
|
|
window.addEventListener('blur', handleBlur);
|
|
|
|
return () => {
|
|
window.removeEventListener('focus', handleFocus);
|
|
window.removeEventListener('blur', handleBlur);
|
|
};
|
|
}, []);
|
|
|
|
return isFocused;
|
|
} |